tp5 控制器前置操作解析

标签: tp5 控制器前置操作 tp5 前置操作解析
1人阅读 评论(0) 收藏 举报
分类:
//在/think/library/think/Controller.php中



    /**
     * 前置操作方法列表
     * @var array $beforeActionList
     * @access protected
     */
    protected $beforeActionList = [];

    /**
     * 构造方法
     * @param Request $request Request对象
     * @access public
     */
    public function __construct(Request $request = null)
    {

        // 前置操作方法
        if ($this->beforeActionList) {
            foreach ($this->beforeActionList as $method => $options) {
                is_numeric($method) ?
                $this->beforeAction($options) :
                $this->beforeAction($method, $options);
            }
        }
    }

    /**
     * 前置操作
     * @access protected
     * @param string $method  前置操作方法名
     * @param array  $options 调用参数 ['only'=>[...]] 或者['except'=>[...]]
     */
    protected function beforeAction($method, $options = [])
    {
        if (isset($options['only'])) {
            if (is_string($options['only'])) {
                $options['only'] = explode(',', $options['only']);
            }
            if (!in_array($this->request->action(), $options['only'])) {
                return;
            }
        } elseif (isset($options['except'])) {
            if (is_string($options['except'])) {
                $options['except'] = explode(',', $options['except']);
            }
            if (in_array($this->request->action(), $options['except'])) {
                return;
            }
        }
        //调用对象的某个方法
        call_user_func([$this, $method]);
    }
查看评论

tp5控制器的基本使用/tp5前置操作/tp5控制器初始化/tp5空操作/tp5跳转和重定向

tp5控制器 namespace app\index\controller; use think\Controller; /** * Class User * @package ap...
  • jianai0602
  • jianai0602
  • 2017-11-16 10:32:29
  • 481

TP5中的前置操作

近几天的开发中,写了一个类,发现几乎每一个方法都需要加一个同样的验证层。如下: (new OpenidValidate()) -> goCheck(); parent...
  • qq_32737755
  • qq_32737755
  • 2017-12-27 11:09:32
  • 323

一个样例学会tp5控制器的基本使用/tp5前置操作/tp5控制器初始化/tp5空操作/tp5跳转和重定向

点击进入视频教程tp5控制器一个样例明白控制器的定义及使用
  • hayixia606
  • hayixia606
  • 2017-07-24 22:44:39
  • 5203

Thinkphp5-前置操作

  • Ferre666
  • Ferre666
  • 2017-07-27 17:48:07
  • 1650

thinkPHP 空模块和空操作、前置操作和后置操作 详细介绍(十四)

thinkPHP 空模块和空操作、前置操作和后置操作 详细介绍
  • leyangjun
  • leyangjun
  • 2014-12-22 15:15:18
  • 1644

tp5 Controller 前置方法

使用前必须先继承Controllerclass Address extends Controller { protected $beforeActionList = [ //执...
  • weixin_37914752
  • weixin_37914752
  • 2018-04-02 20:37:03
  • 38

Thinkphp5 前置操作

protected $beforeActionList = [        'first',        'second' =>  ['except'=>'hello'...
  • linhui03
  • linhui03
  • 2018-02-27 05:14:55
  • 55

Thinkphp 控制器内初始化方法_initialize 及前置后置方法

定义了该初始化方法后,无论执行该控制器的其他方法,都会首先执行一次_initialize()方法。 namespace Home\Controller; use Think\Controller; ...
  • u011341352
  • u011341352
  • 2015-10-07 16:12:48
  • 5035

TP框架中隐藏的预处理函数,前置钩子

在tp框架中,隐藏着这样一个函数,叫前置钩子。在比较低版本的手册上,很少提及这种类型的函数。但在其源码中,可以找到这样的函数,位置是在ThinkPHP\Library\Think目录Model.cla...
  • u011341352
  • u011341352
  • 2015-07-29 14:56:30
  • 2831

tp框架中空操作和空控制器处理方法

根据tp3.2版本参考手册来看,针对空操作需要在对应控制器内定义_empty方法;针对空控制器,需要定义EmptyController控制器,同时该控制器内需要添加_empty函数。 空操作     ...
  • zuimei_forver
  • zuimei_forver
  • 2015-12-07 13:05:00
  • 1422
    个人资料
    持之以恒
    等级:
    访问量: 1769
    积分: 1000
    排名: 5万+
    文章存档