首页> 实战笔录 >PHP开发笔记 >ThinkPHP ThinkPHP
TP5.1 钩子与行为应用
作者:小萝卜 2019-11-21 【 TP5 】 浏览 1307
简介什么是行为:可以将行为理解为是一个行为类的方法,在框架中行为类、行为方法则是有一定的规则约定;而钩子则是这些行为方法被调用执行的位置点。注意了,要想执行某个钩子中的行为,那行为一定要在应用程序执行到该钩子之前进行绑定
什么是行为:
可以将行为理解为是一个行为类的方法,在框架中行为类、行为方法则是有一定的规则约定;而钩子则是这些行为方法被调用执行的位置点。注意了,要想执行某个钩子中的行为,那行为一定要在应用程序执行到该钩子之前进行绑定
特点:
-
一个钩子可以绑定多个行为,执行到某个钩子位置后,会按照绑定的顺序依次执行相关的行为。
-
在某种特殊情况下,可以设置某个钩子只能执行一次行为,或者是设置在一个钩子的某个行为返回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)
上一篇:TP5 自定义验证器
相关文章
- Swoole 结合TP5创建http服务
- TP6报错:Non-static method think\Request::controller() should not be called statically
- TP6使用JWT实现中间件验证Token,验证用户登录信息
- tp5 致命错误: Class 'think\route' not found
- TP6实现前后端分离的图片验证码,验证码怎么以接口形式返回
- SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Attr_id' in 'where clause'
- tp5 上传文件时怎么让他不自动生成子文件夹?
- TP5.1实现微信小程序用户登录后端代码分享
- PayPal支付ThinkPHP3.2源代码
- PHPExcel在TP3.2下使用方法