public function parseRoute($path) { $pathParams = array(); $queryParams = array(); if (!$path) { return; } $urlQuery = parse_url($path, PHP_URL_QUERY); $urlPath = trim(parse_url($path, PHP_URL_PATH), '/'); $pathArr = explode('/', $urlPath); $module = APP . ucfirst($pathArr[0]) . '/Controller'; if (file_exists($module)) { self::$module = ucfirst($pathArr[0]); if ($pathArr[1]) { self::$control = ucfirst($pathArr[1]); } if ($pathArr[2]) { self::$action = $pathArr[2]; } $pathParams = array_slice($pathArr, 3); } else { if ($pathArr[0]) { self::$control = ucfirst($pathArr[0]); } if ($pathArr[1]) { self::$action = $pathArr[1]; } $pathParams = array_slice($pathArr, 2); } if ($urlQuery) { $queryParams = $this->combineQuery($urlQuery); } $params = array_merge($pathParams, $queryParams); $this->combineParams($params); }
/** * 初始化 暂时只支持默认模式 * @param $config */ public static function init($config) { self::$config = $config; self::$urlQuery = parse_url($_SERVER['REQUEST_URI']); $urlType = $config['url_type']; switch ($urlType) { case 'default': self::defaultToArray(); break; case 'pathinfo': self::pathinfoToArray(); break; default: self::defaultToArray(); } }