mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-01 12:42:48 +08:00
改进路由注册和检测机制
This commit is contained in:
@@ -273,6 +273,12 @@ class Route
|
||||
unset(self::$rules['*'][$rule]);
|
||||
}
|
||||
self::$rules[$type][$rule] = ['rule' => $rule, 'route' => $route, 'var' => $vars, 'option' => $option, 'pattern' => $pattern];
|
||||
if ('*' == $type) {
|
||||
// 注册路由快捷方式
|
||||
foreach (['GET', 'POST', 'PUT', 'DELETE'] as $method) {
|
||||
self::$rules[$method][$rule] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -325,6 +331,7 @@ class Route
|
||||
self::$rules[$type][$name]['var'] = self::parseVar($name);
|
||||
self::$rules[$type][$name]['option'] = $option;
|
||||
self::$rules[$type][$name]['pattern'] = $pattern;
|
||||
|
||||
} else {
|
||||
foreach ($routes as $key => $val) {
|
||||
if (is_numeric($key)) {
|
||||
@@ -342,6 +349,15 @@ class Route
|
||||
}
|
||||
self::$rules[$type][$name] = ['rule' => $item, 'route' => '', 'var' => [], 'option' => $option, 'pattern' => $pattern];
|
||||
}
|
||||
if ('*' == $type) {
|
||||
foreach (['GET', 'POST', 'PUT', 'DELETE'] as $method) {
|
||||
if (!isset(self::$rules[$method][$name])) {
|
||||
self::$rules[$method][$name] = true;
|
||||
} else {
|
||||
self::$rules[$method][$name] = array_merge(self::$rules[$method][$name], self::$rules['*'][$name]);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ($routes instanceof \Closure) {
|
||||
// 闭包注册
|
||||
@@ -701,10 +717,6 @@ class Route
|
||||
|
||||
// 获取当前请求类型的路由规则
|
||||
$rules = self::$rules[$request->method()];
|
||||
if (!empty(self::$rules['*'])) {
|
||||
// 合并任意请求的路由规则
|
||||
$rules = array_merge_recursive(self::$rules['*'], $rules);
|
||||
}
|
||||
|
||||
// 检测域名部署
|
||||
if ($checkDomain) {
|
||||
@@ -719,6 +731,9 @@ class Route
|
||||
// 路由规则检测
|
||||
if (!empty($rules)) {
|
||||
foreach ($rules as $group => $val) {
|
||||
if (true === $val) {
|
||||
$val = self::$rules['*'][$group];
|
||||
}
|
||||
$rule = $val['rule'];
|
||||
$route = $val['route'];
|
||||
$vars = $val['var'];
|
||||
|
||||
@@ -266,8 +266,12 @@ class Url
|
||||
}
|
||||
// 获取路由定义
|
||||
$array = Route::getRules();
|
||||
unset($array['*']);
|
||||
foreach ($array as $type => $rules) {
|
||||
foreach ($rules as $group => $val) {
|
||||
if (true === $val) {
|
||||
continue;
|
||||
}
|
||||
$rule = $val['rule'];
|
||||
$route = $val['route'];
|
||||
$vars = $val['var'];
|
||||
|
||||
Reference in New Issue
Block a user