本文整理汇总了PHP中IUrl::urlRoute方法的典型用法代码示例。如果您正苦于以下问题:PHP IUrl::urlRoute方法的具体用法?PHP IUrl::urlRoute怎么用?PHP IUrl::urlRoute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IUrl
的用法示例。
在下文中一共展示了IUrl::urlRoute方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getRouteCache
/**
* @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;
}