tp5钩子函数的用法与场景

先看tp5文档

行为标签位
标签位	描述
app_init	应用初始化标签位
app_begin	应用开始标签位
module_init	模块初始化标签位
action_begin	控制器开始标签位
view_filter	视图输出过滤标签位
app_end	应用结束标签位
log_write	日志write方法标签位
log_write_done	日志写入完成标签位(V5.0.10+)
response_send	响应发送标签位(V5.0.10+)
response_end	输出结束标签位(V5.0.1+)

更详细请直接看文档 Hook行为类

不多说,直接看用法

行为类的定义很简单,定义行为的执行入口run,例如:
namespace app\xxx\xxx;
//此类不需要继承任何类
class Test 
{
    public function run(&$params)
    {
        	echo 'hello world
'; } }
再定义另一个类
在app/tags.php指定行为
'app_init'     => ['app\index\controller\Test'],
执行
输出
![输出](https://img-blog.csdnimg.cn/20190111135617493.png)
动态配置
Hook::add('钩子名称','行为定义','是否优先执行');
use think\Hook;

Hook::add('app_init',[
	'\app\index\controller\Test',
]);
自定义钩子
Hook::listen('钩子名称','参数(引用)','额外参数','是否一次有效返回值');

$result = Hook::listen('controller_init', $this, $request, true);

你可能感兴趣的:(php)