修正空控制器名称和关键字冲突的问题

空控制器默认改为 Error 并且可以自定义 通过修改 empty_controller 参数
This commit is contained in:
thinkphp
2015-09-26 21:52:03 +08:00
parent 5c00b163ae
commit 9dcfeefb1f
4 changed files with 8 additions and 5 deletions

View File

@@ -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;