tp5鉤子函式的用法與場景
阿新 • • 發佈:2019-01-11
先看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</br>';
}
}
再定義另一個類
<?php namespace app\index\controller; use think\Controller; use think\Db; use think\Hook; class Hooktest extends Controller { public function index() { echo "heiheihei"; } }
在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);