mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-05 14:52:47 +08:00
改进绑定到命名空间和类的判断 callable不存在的时候抛出异常
This commit is contained in:
@@ -99,7 +99,11 @@ class App
|
|||||||
break;
|
break;
|
||||||
case 'callable':
|
case 'callable':
|
||||||
// 执行回调方法
|
// 执行回调方法
|
||||||
$data = call_user_func_array(self::$dispatch['callable'], self::$dispatch['params']);
|
if (is_callable(self::$dispatch['callable'])) {
|
||||||
|
$data = call_user_func_array(self::$dispatch['callable'], self::$dispatch['params']);
|
||||||
|
} else {
|
||||||
|
throw new Exception('not callable : ' . (is_array(self::$dispatch['callable']) ? implode('->', self::$dispatch['callable']) : self::$dispatch['callable']), 10009);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'closure':
|
case 'closure':
|
||||||
// 规则闭包
|
// 规则闭包
|
||||||
|
|||||||
@@ -315,7 +315,7 @@ class Route
|
|||||||
case 'class':
|
case 'class':
|
||||||
// 绑定到类
|
// 绑定到类
|
||||||
$array = explode('/', $url, 2);
|
$array = explode('/', $url, 2);
|
||||||
if (isset($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' => 'callable', 'callable' => [self::$bind['class'], $array[0] ?: Config::get('default_action')], 'params' => []];
|
||||||
@@ -323,9 +323,9 @@ class Route
|
|||||||
case 'namespace':
|
case 'namespace':
|
||||||
// 绑定到命名空间
|
// 绑定到命名空间
|
||||||
$array = explode('/', $url, 3);
|
$array = explode('/', $url, 3);
|
||||||
$class = isset($array[0]) ? $array[0] : Config::get('default_controller');
|
$class = !empty($array[0]) ? $array[0] : Config::get('default_controller');
|
||||||
$method = isset($array[1]) ? $array[1] : Config::get('default_action');
|
$method = !empty($array[1]) ? $array[1] : Config::get('default_action');
|
||||||
if (isset($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' => 'callable', 'callable' => [self::$bind['namespace'] . '\\' . $class, $method], 'params' => []];
|
||||||
|
|||||||
Reference in New Issue
Block a user