/** * @brief 获取路由缓存 * @return array */ private static function getRouteCache() { //配置文件中不存在路由规则 if (self::$urlRoute === false) { return null; } //存在路由的缓存信息 if (self::$urlRoute) { return self::$urlRoute; } //第一次初始化 $routeList = isset(IWeb::$app->config['urlRoute']) ? IWeb::$app->config['urlRoute'] : array(); if (empty($routeList)) { self::$urlRoute = false; return null; } $cacheRoute = array(); foreach ($routeList as $key => $val) { if (is_array($val)) { continue; } $tempArray = explode('/', trim($val, '/'), 3); if ($tempArray < 2) { continue; } //进行路由规则的级别划分,$level越低表示匹配优先 $level = 3; if ($tempArray[0] != '<' . self::UrlCtrlName . '>' && $tempArray[1] != '<' . self::UrlActionName . '>') { $level = 0; } elseif ($tempArray[0] == '<' . self::UrlCtrlName . '>' && $tempArray[1] != '<' . self::UrlActionName . '>') { $level = 1; } elseif ($tempArray[0] != '<' . self::UrlCtrlName . '>' && $tempArray[1] == '<' . self::UrlActionName . '>') { $level = 2; } $cacheRoute[$level][$key] = $val; } if (empty($cacheRoute)) { self::$urlRoute = false; return null; } ksort($cacheRoute); self::$urlRoute = $cacheRoute; return self::$urlRoute; }