首页> 实战笔录 >PHP开发笔记 >ThinkPHP ThinkPHP

TP5.1 钩子与行为应用

作者:小萝卜 2019-11-21 浏览 1207

简介什么是行为:可以将行为理解为是一个行为类的方法,在框架中行为类、行为方法则是有一定的规则约定;而钩子则是这些行为方法被调用执行的位置点。注意了,要想执行某个钩子中的行为,那行为一定要在应用程序执行到该钩子之前进行绑定

什么是行为:

可以将行为理解为是一个行为类的方法,在框架中行为类、行为方法则是有一定的规则约定;而钩子则是这些行为方法被调用执行的位置点。注意了,要想执行某个钩子中的行为,那行为一定要在应用程序执行到该钩子之前进行绑定

特点:

 

  • 一个钩子可以绑定多个行为,执行到某个钩子位置后,会按照绑定的顺序依次执行相关的行为。

  • 在某种特殊情况下,可以设置某个钩子只能执行一次行为,或者是设置在一个钩子的某个行为返回false来强制终止后续的行为执行。

  • 一个行为同样可以被绑定到多个不同钩子。

官方预定义了一些钩子,方便我们在程序中直接使用,在application目录下的tag.php中,我们只需要在对应的钩子下绑定行为即可生效,例如:

    // 应用初始化
    'app_init' => ['\app\index\behavior\Test'],

当程序初始化时会执行 appindexbehaviorTest 类的 run 方法

我们也可以自定义钩子,在tag.php中添加自定义钩子

'my_action' => ['\app\index\behavior\Test'],

然后在程序对应的位置监听这个钩子,当程序执行到这里是会自动触发钩子

 public function hello($name = 'ThinkPHP5') {
        thinkfacadeHook::listen("my_action");
        return 'hello,' . $name;
    }
 

 

 

 

很赞哦! (0)

文章评论

    高端网站建设