Exemple #1
0
 private static function _IDispatch($scriptFilename, $requestMethod, &$phpFilename)
 {
     self::$s_sFile = $scriptFilename;
     self::$s_sFunc = '';
     self::$s_sMethod = $requestMethod;
     $phpFilename = '';
     if ('.php' === substr(self::$s_sFile, -4)) {
         if (!is_file(self::$s_sFile)) {
             return self::$s_iErrno = self::ERR_FILE;
         }
         $phpFilename = self::$s_sFile;
     } else {
         $pathinfo = pathinfo(self::$s_sFile);
         if (is_file(self::$s_sFile)) {
             $render = new Ko_View_Render_FILE();
             $render->oSetData('filename', self::$s_sFile);
             Ko_Web_Response::VSetContentType($pathinfo['extension']);
             Ko_Web_Response::VAppendBody($render);
             Ko_Web_Response::VSend();
         } else {
             if (is_dir(self::$s_sFile)) {
                 list($rewrite, $httpcode) = Ko_Web_Rewrite::AGet();
                 list($path, $query) = explode('?', $rewrite, 2);
                 if (isset($query)) {
                     $query = '?' . $query;
                 }
                 Ko_Web_Response::VSetRedirect($path . '/' . $query);
                 Ko_Web_Response::VSend();
             } else {
                 self::$s_sFunc = $pathinfo['basename'];
                 self::$s_sFile = $pathinfo['dirname'] . '.php';
                 if (!is_file(self::$s_sFile)) {
                     return self::$s_iErrno = self::ERR_FILE;
                 }
                 self::_VRequireFile(self::$s_sFile);
                 if (!isset(self::$s_aRoute[self::$s_sFunc])) {
                     return self::$s_iErrno = self::ERR_FUNC;
                 }
                 if (!isset(self::$s_aRoute[self::$s_sFunc][self::$s_sMethod])) {
                     return self::$s_iErrno = self::ERR_METHOD;
                 }
                 call_user_func(self::$s_aRoute[self::$s_sFunc][self::$s_sMethod]);
             }
         }
     }
     return self::$s_iErrno = 0;
 }
Exemple #2
0
 private static function _IDispatch($scriptFilename, $requestMethod, &$phpFilename)
 {
     self::$s_sFile = $scriptFilename;
     self::$s_sFunc = '';
     self::$s_sMethod = $requestMethod;
     $phpFilename = '';
     if ('.php' === substr(self::$s_sFile, -4)) {
         if (!is_file(self::$s_sFile)) {
             return self::$s_iErrno = self::ERR_FILE;
         }
         $phpFilename = self::$s_sFile;
     } else {
         if (is_file(self::$s_sFile)) {
             $render = new Ko_View_Render_FILE();
             $render->oSetData('filename', self::$s_sFile);
             Ko_Web_Response::VSend($render);
         } else {
             if (is_dir(self::$s_sFile)) {
                 list($rewrite, $httpcode) = Ko_Web_Rewrite::AGet();
                 list($path, $query) = explode('?', $rewrite, 2);
                 if (isset($query)) {
                     $query = '?' . $query;
                 }
                 Ko_Web_Response::VSetRedirect($path . '/' . $query);
                 Ko_Web_Response::VSend();
             } else {
                 $pathinfo = pathinfo(self::$s_sFile);
                 self::$s_sFunc = $pathinfo['basename'];
                 self::$s_sFile = $pathinfo['dirname'] . '.php';
                 if (self::_IWebRoute()) {
                     self::$s_sFile = $pathinfo['dirname'] . '/index.php';
                     return self::_IWebRoute();
                 }
             }
         }
     }
     return self::$s_iErrno = 0;
 }