使用tp5中的空操作_empty,以避免创建过多的无用控制器和方法

空操作是指系统在找不到指定的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化。

  这是官方文档对空操作的描述,根据官方文档中的案例可以稍稍改进一下

  

<?php
namespace app\index\controller;

use library\Controller;

/**
 * 基类控制器
 */
class Base extends Controller
{
    /**
     * 空操作 用于显示错误页面
     */
    public function _empty($name){
        return $this->fetch($name);
    }
}

  这样就无需为了新增的模板文件创建额外的方法去渲染了,这样就能在前后端分离的道路上得更远。如果想更简洁一点,甚至可以定义一个空控制器,在空控制器里添加空操作的代码。这样就完全摆脱的控制器的限制,只要有模板文件就能显示。

  这样虽然代码简洁,但是却有点本末倒置的感觉。不过这也是工作中的一点小发现而已,也不是什么发现都能派的上用场的。废话少说,上代码

 

<?php
namespace app\index\controller;

use think\Request;
use library\Controller;

/**
*空控制器
*/
class Error extends Controller
{
    public function _empty($name)
    {
        return $this->fetch($name);
    }
}

  还可以到配置文件中定义空控制器的名字

 

'empty_controller'      => 'MyError',

  

posted @ 2019-07-20 09:00  我就是要出狂战斧  阅读(1181)  评论(0编辑  收藏  举报