mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 15:12:48 +08:00
callable类型改为method closure类型改为function
This commit is contained in:
@@ -91,19 +91,19 @@ class App
|
|||||||
break;
|
break;
|
||||||
case 'module':
|
case 'module':
|
||||||
// 模块/控制器/操作
|
// 模块/控制器/操作
|
||||||
$data = self::module(self::$dispatch['data'], $config);
|
$data = self::module(self::$dispatch['module'], $config);
|
||||||
break;
|
break;
|
||||||
case 'controller':
|
case 'controller':
|
||||||
// 执行控制器操作
|
// 执行控制器操作
|
||||||
$data = Loader::action(self::$dispatch['controller'], self::$dispatch['params']);
|
$data = Loader::action(self::$dispatch['controller'], self::$dispatch['params']);
|
||||||
break;
|
break;
|
||||||
case 'callable':
|
case 'method':
|
||||||
// 执行回调方法
|
// 执行回调方法
|
||||||
$data = self::invokeMethod(self::$dispatch['callable'], self::$dispatch['params']);
|
$data = self::invokeMethod(self::$dispatch['method'], self::$dispatch['params']);
|
||||||
break;
|
break;
|
||||||
case 'closure':
|
case 'function':
|
||||||
// 规则闭包
|
// 规则闭包
|
||||||
$data = self::invokeFunction(self::$dispatch['closure'], self::$dispatch['params']);
|
$data = self::invokeFunction(self::$dispatch['function'], self::$dispatch['params']);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new Exception('dispatch type not support', 10008);
|
throw new Exception('dispatch type not support', 10008);
|
||||||
@@ -115,9 +115,9 @@ class App
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 执行函数或者闭包方法 支持参数调用
|
// 执行函数或者闭包方法 支持参数调用
|
||||||
private static function invokeFunction($closure, $vars = [])
|
private static function invokeFunction($function, $vars = [])
|
||||||
{
|
{
|
||||||
$reflect = new \ReflectionFunction($closure);
|
$reflect = new \ReflectionFunction($function);
|
||||||
$args = self::bindParams($reflect, $vars);
|
$args = self::bindParams($reflect, $vars);
|
||||||
return $reflect->invokeArgs($args);
|
return $reflect->invokeArgs($args);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ class Route
|
|||||||
$rule = substr($rule, 1, -1);
|
$rule = substr($rule, 1, -1);
|
||||||
$result = ['routes' => $route, 'option' => $option, 'pattern' => $pattern];
|
$result = ['routes' => $route, 'option' => $option, 'pattern' => $pattern];
|
||||||
} elseif (is_array($route)) {
|
} elseif (is_array($route)) {
|
||||||
$result = ['route' => !empty($route[0])?$route[0]:'', 'option' => !empty($route[1])?$route[1]:'', 'pattern' => !empty($route[2])?$route[2]:''];
|
$result = ['route' => !empty($route[0]) ? $route[0] : '', 'option' => !empty($route[1]) ? $route[1] : '', 'pattern' => !empty($route[2]) ? $route[2] : ''];
|
||||||
} else {
|
} else {
|
||||||
$result = ['route' => $route, 'option' => $option, 'pattern' => $pattern];
|
$result = ['route' => $route, 'option' => $option, 'pattern' => $pattern];
|
||||||
}
|
}
|
||||||
@@ -297,7 +297,7 @@ class Route
|
|||||||
if (!empty($array[1])) {
|
if (!empty($array[1])) {
|
||||||
self::parseUrlParams($array[1]);
|
self::parseUrlParams($array[1]);
|
||||||
}
|
}
|
||||||
$return = ['type' => 'callable', 'callable' => [self::$bind['class'], $array[0] ?: Config::get('default_action')], 'params' => []];
|
$return = ['type' => 'method', 'method' => [self::$bind['class'], $array[0] ?: Config::get('default_action')], 'params' => []];
|
||||||
break;
|
break;
|
||||||
case 'namespace':
|
case 'namespace':
|
||||||
// 绑定到命名空间
|
// 绑定到命名空间
|
||||||
@@ -307,7 +307,7 @@ class Route
|
|||||||
if (!empty($array[2])) {
|
if (!empty($array[2])) {
|
||||||
self::parseUrlParams($array[2]);
|
self::parseUrlParams($array[2]);
|
||||||
}
|
}
|
||||||
$return = ['type' => 'callable', 'callable' => [self::$bind['namespace'] . '\\' . $class, $method], 'params' => []];
|
$return = ['type' => 'method', 'method' => [self::$bind['namespace'] . '\\' . $class, $method], 'params' => []];
|
||||||
break;
|
break;
|
||||||
case 'module':
|
case 'module':
|
||||||
// 如果有模块/控制器绑定 针对路由到 模块/控制器 有效
|
// 如果有模块/控制器绑定 针对路由到 模块/控制器 有效
|
||||||
@@ -424,7 +424,7 @@ class Route
|
|||||||
if (false !== $match = self::match($url, $rule, $pattern)) {
|
if (false !== $match = self::match($url, $rule, $pattern)) {
|
||||||
if ($route instanceof \Closure) {
|
if ($route instanceof \Closure) {
|
||||||
// 执行闭包
|
// 执行闭包
|
||||||
return ['type' => 'closure', 'closure' => $route, 'params' => $match];
|
return ['type' => 'function', 'function' => $route, 'params' => $match];
|
||||||
}
|
}
|
||||||
return self::parseRule($rule, $route, $url);
|
return self::parseRule($rule, $route, $url);
|
||||||
}
|
}
|
||||||
@@ -462,7 +462,7 @@ class Route
|
|||||||
if (!empty($result['var'])) {
|
if (!empty($result['var'])) {
|
||||||
$_GET = array_merge($result['var'], $_GET);
|
$_GET = array_merge($result['var'], $_GET);
|
||||||
}
|
}
|
||||||
return ['type' => 'module', 'data' => $result['route']];
|
return ['type' => 'module', 'module' => $result['route']];
|
||||||
}
|
}
|
||||||
|
|
||||||
// 解析规范的路由地址
|
// 解析规范的路由地址
|
||||||
@@ -568,7 +568,7 @@ class Route
|
|||||||
$result = ['type' => 'redirect', 'url' => $url, 'status' => (is_array($route) && isset($route[1])) ? $route[1] : 301];
|
$result = ['type' => 'redirect', 'url' => $url, 'status' => (is_array($route) && isset($route[1])) ? $route[1] : 301];
|
||||||
} elseif (0 === strpos($url, '\\')) {
|
} elseif (0 === strpos($url, '\\')) {
|
||||||
// 路由到回调
|
// 路由到回调
|
||||||
$result = ['type' => 'callable', 'callable' => $route, 'params' => $matches];
|
$result = ['type' => 'method', 'method' => $route, 'params' => $matches];
|
||||||
} elseif (0 === strpos($url, '@')) {
|
} elseif (0 === strpos($url, '@')) {
|
||||||
// 路由到控制器
|
// 路由到控制器
|
||||||
$result = ['type' => 'controller', 'controller' => substr($url, 1), 'params' => $matches];
|
$result = ['type' => 'controller', 'controller' => substr($url, 1), 'params' => $matches];
|
||||||
@@ -586,7 +586,7 @@ class Route
|
|||||||
$var = array_merge($matches, $var);
|
$var = array_merge($matches, $var);
|
||||||
// 解析剩余的URL参数
|
// 解析剩余的URL参数
|
||||||
self::parseUrlParams(implode('/', $paths), $var);
|
self::parseUrlParams(implode('/', $paths), $var);
|
||||||
$result = ['type' => 'module', 'data' => $result['route']];
|
$result = ['type' => 'module', 'module' => $result['route']];
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user