mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 23:22:48 +08:00
改进Route类的alias方法 改进Url类生成支持路由别名
This commit is contained in:
@@ -449,9 +449,11 @@ class Route
|
|||||||
* @param array $option 路由参数
|
* @param array $option 路由参数
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function alias($rule, $route = '', $option = [])
|
public static function alias($rule = null, $route = '', $option = [])
|
||||||
{
|
{
|
||||||
if (is_array($rule)) {
|
if (is_null($rule)) {
|
||||||
|
return self::$alias;
|
||||||
|
} elseif (is_array($rule)) {
|
||||||
self::$alias = array_merge(self::$alias, $rule);
|
self::$alias = array_merge(self::$alias, $rule);
|
||||||
} else {
|
} else {
|
||||||
self::$alias[$rule] = $option ? [$route, $option] : $route;
|
self::$alias[$rule] = $option ? [$route, $option] : $route;
|
||||||
|
|||||||
@@ -264,11 +264,11 @@ class Url
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 生成路由别名并缓存
|
// 生成路由映射并缓存
|
||||||
private static function getRouteAlias()
|
private static function getRouteAlias()
|
||||||
{
|
{
|
||||||
if ($alias = Cache::get('think_route_alias')) {
|
if ($item = Cache::get('think_route_map')) {
|
||||||
return $alias;
|
return $item;
|
||||||
}
|
}
|
||||||
// 获取路由定义
|
// 获取路由定义
|
||||||
$rules = Route::getRules();
|
$rules = Route::getRules();
|
||||||
@@ -290,8 +290,8 @@ class Url
|
|||||||
list($route, $str) = explode('?', $route, 2);
|
list($route, $str) = explode('?', $route, 2);
|
||||||
parse_str($str, $param);
|
parse_str($str, $param);
|
||||||
}
|
}
|
||||||
$var = self::parseVar($rule . '/' . $key);
|
$var = self::parseVar($rule . '/' . $key);
|
||||||
$alias[$route][] = [$rule . '/' . $key, $var, $param];
|
$item[$route][] = [$rule . '/' . $key, $var, $param];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$route = $val['route'];
|
$route = $val['route'];
|
||||||
@@ -304,8 +304,8 @@ class Url
|
|||||||
list($route, $str) = explode('?', $route, 2);
|
list($route, $str) = explode('?', $route, 2);
|
||||||
parse_str($str, $param);
|
parse_str($str, $param);
|
||||||
}
|
}
|
||||||
$var = self::parseVar($rule);
|
$var = self::parseVar($rule);
|
||||||
$alias[$route][] = [$rule, $var, $param];
|
$item[$route][] = [$rule, $var, $param];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -317,10 +317,17 @@ class Url
|
|||||||
list($route, $str) = explode('?', $route, 2);
|
list($route, $str) = explode('?', $route, 2);
|
||||||
parse_str($str, $param);
|
parse_str($str, $param);
|
||||||
}
|
}
|
||||||
$alias[$route][] = [$rule, [], $param];
|
$item[$route][] = [$rule, [], $param];
|
||||||
}
|
}
|
||||||
!APP_DEBUG && Cache::set('think_route_alias', $alias);
|
|
||||||
return $alias;
|
// 检测路由别名
|
||||||
|
$alias = Route::alias();
|
||||||
|
foreach ($alias as $rule => $route) {
|
||||||
|
$route = is_array($route) ? $route[0] : $route;
|
||||||
|
$item[$route][] = [$rule, [], []];
|
||||||
|
}
|
||||||
|
!APP_DEBUG && Cache::set('think_route_map', $item);
|
||||||
|
return $item;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 分析路由规则中的变量
|
// 分析路由规则中的变量
|
||||||
@@ -363,6 +370,6 @@ class Url
|
|||||||
// 清空路由别名缓存
|
// 清空路由别名缓存
|
||||||
public static function clearAliasCache()
|
public static function clearAliasCache()
|
||||||
{
|
{
|
||||||
Cache::rm('think_route_alias');
|
Cache::rm('think_route_map');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user