mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-02 05:02:48 +08:00
路由支持路由到多级控制器访问
This commit is contained in:
@@ -63,13 +63,13 @@ class App
|
||||
Hook::listen('app_run');
|
||||
|
||||
// 执行操作
|
||||
if (!preg_match('/^[A-Za-z](\/|\w)*$/', CONTROLLER_NAME)) {
|
||||
if (!preg_match('/^[A-Za-z](\/|\.|\w)*$/', CONTROLLER_NAME)) {
|
||||
// 安全检测
|
||||
$instance = false;
|
||||
} elseif ($config['action_bind_class']) {
|
||||
// 操作绑定到类:模块\controller\控制器\操作
|
||||
if (is_dir(MODULE_PATH . CONTROLLER_LAYER . '/' . CONTROLLER_NAME)) {
|
||||
$namespace = MODULE_NAME . '\\' . CONTROLLER_LAYER . '\\' . CONTROLLER_NAME . '\\';
|
||||
if (is_dir(MODULE_PATH . CONTROLLER_LAYER . '/' . str_replace('.', '/', CONTROLLER_NAME))) {
|
||||
$namespace = MODULE_NAME . '\\' . CONTROLLER_LAYER . '\\' . str_replace('.', '\\', CONTROLLER_NAME) . '\\';
|
||||
} else {
|
||||
// 空控制器
|
||||
$namespace = MODULE_NAME . '\\' . CONTROLLER_LAYER . '\\' . $config['empty_controller'] . '\\';
|
||||
@@ -92,7 +92,7 @@ class App
|
||||
$action = ACTION_NAME . $config['action_suffix'];
|
||||
}
|
||||
if (!$instance) {
|
||||
throw new Exception('[ ' . MODULE_NAME . '\\' . CONTROLLER_LAYER . '\\' . Loader::parseName(CONTROLLER_NAME, 1) . ' ] not exists');
|
||||
throw new Exception('[ ' . MODULE_NAME . '\\' . CONTROLLER_LAYER . '\\' . Loader::parseName(str_replace('.', '\\', CONTROLLER_NAME), 1) . ' ] not exists');
|
||||
}
|
||||
|
||||
try {
|
||||
|
||||
@@ -183,7 +183,7 @@ class Loader
|
||||
} else {
|
||||
$module = MODULE_NAME;
|
||||
}
|
||||
$class = $module . '\\' . $layer . '\\' . self::parseName($name, 1);
|
||||
$class = $module . '\\' . $layer . '\\' . self::parseName(str_replace('.', '\\', $name), 1);
|
||||
if (class_exists($class)) {
|
||||
$action = new $class;
|
||||
$_instance[$name . $layer] = $action;
|
||||
|
||||
Reference in New Issue
Block a user