From 9dcfeefb1fb62047711eb7487119bcdc25bc469d Mon Sep 17 00:00:00 2001 From: thinkphp Date: Sat, 26 Sep 2015 21:52:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E7=A9=BA=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E5=99=A8=E5=90=8D=E7=A7=B0=E5=92=8C=E5=85=B3=E9=94=AE=E5=AD=97?= =?UTF-8?q?=E5=86=B2=E7=AA=81=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 空控制器默认改为 Error 并且可以自定义 通过修改 empty_controller 参数 --- convention.php | 1 + library/think/app.php | 2 +- library/think/loader.php | 8 +++++--- library/think/view.php | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/convention.php b/convention.php index 927e25f4..e81d454a 100644 --- a/convention.php +++ b/convention.php @@ -10,6 +10,7 @@ return [ 'default_module' => 'index', // 默认模块名 'default_controller' => 'index', // 默认控制器名 'default_action' => 'index', // 默认操作名 + 'empty_controller' => 'error', // 默认的空控制器名 'action_suffix' => '', // 操作方法后缀 'url_model' => 1, // URL模式 'url_request_uri' => 'REQUEST_URI', // 获取当前页面地址的系统变量 默认为REQUEST_URI diff --git a/library/think/app.php b/library/think/app.php index fcb0d1bc..992408ea 100644 --- a/library/think/app.php +++ b/library/think/app.php @@ -83,7 +83,7 @@ class App { // 操作绑定到类后 固定执行run入口 $action = 'run'; }else{ - $instance = Loader::controller(CONTROLLER_NAME); + $instance = Loader::controller(CONTROLLER_NAME,'',$config['empty_controller']); // 获取当前操作名 $action = ACTION_NAME . $config['action_suffix']; } diff --git a/library/think/loader.php b/library/think/loader.php index d19d451e..d84f4893 100644 --- a/library/think/loader.php +++ b/library/think/loader.php @@ -154,10 +154,12 @@ class Loader { * 实例化(分层)控制器 格式:[模块名/]控制器名 * @param string $name 资源地址 * @param string $layer 控制层名称 + * @param string $empty 空控制器名称 * @return Object|false */ - static public function controller($name, $layer = CONTROLLER_LAYER) { + static public function controller($name, $layer = '', $empty='') { static $_instance = []; + $layer = $layer ? : CONTROLLER_LAYER; if(isset($_instance[$name.$layer])) { return $_instance[$name . $layer]; } @@ -171,8 +173,8 @@ class Loader { $action = new $class; $_instance[$name . $layer] = $action; return $action; - }elseif(class_exists($module . '\\' . $layer . '\\Empty')){ - $class = $module . '\\' . $layer . '\\Empty'; + }elseif($empty && class_exists($module . '\\' . $layer . '\\'.$empty)){ + $class = $module . '\\' . $layer . '\\'.$empty; return new $class; }else{ return false; diff --git a/library/think/view.php b/library/think/view.php index 8ebe5309..efdc8c70 100644 --- a/library/think/view.php +++ b/library/think/view.php @@ -105,7 +105,7 @@ class View { * @param string $cache_id 模板缓存标识 * @return string */ - public function fetch($template, $vars = [], $cache_id='',$renderContent=false) { + public function fetch($template='', $vars = [], $cache_id='',$renderContent=false) { if(!$renderContent){ // 获取模板文件名 $template = $this->parseTemplate($template);