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; }
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; }