From f402a7cb3d242891ba350aaf20368ce1faab2c32 Mon Sep 17 00:00:00 2001 From: thinkphp Date: Mon, 23 Nov 2015 18:15:53 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=AF=E7=94=B1=E6=94=AF=E6=8C=81=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E5=88=B0=E5=A4=9A=E7=BA=A7=E6=8E=A7=E5=88=B6=E5=99=A8?= =?UTF-8?q?=E8=AE=BF=E9=97=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/app.php | 8 ++++---- library/think/loader.php | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/library/think/app.php b/library/think/app.php index 01994511..d1cc0035 100644 --- a/library/think/app.php +++ b/library/think/app.php @@ -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 { diff --git a/library/think/loader.php b/library/think/loader.php index be3fa195..44f0d783 100644 --- a/library/think/loader.php +++ b/library/think/loader.php @@ -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;