關於TP5中的Hook使用方法記錄

TP5的Hook應用場景:在某一個通用方法中,想加入自定義的功能,那就可以使用鉤子了

具體使用步驟:

第一步:在需要加入自定義代碼的地方創建一個監聽Hook(也就是下鉤子)

Hook::listen('action_checklogin');

如果有數據要傳給鉤子,那就使用下面的方法

$data=[];//這個數據可以是任何數據,如數據庫中查出來的數據,需要在鉤子中進行處理

Hook::listen('action_userlist',$data);

print_r($data);

 

第二步:寫具體的執行代碼

在項目的分組文件夾中創建behavior文件夾,然後放入一個Userdatachange.php文件,也就是鉤子需要調用的代碼

<?php
namespace app\admin\behavior;
class Userdatachange
{
    public function run(&$data)
    {
        foreach($data as $k=>$v){

             $data[$k]['addtime'] = date('Y-m-d',$v['addtime']);   //只做一個對時間戳轉換的功能

        }
    }
}
?>

 

第三步:創建鉤子的映射關係,可以用兩種方法

第一種方法:在項目分組文件夾中創建tags.php文件,然後增加映射關係

// 應用行爲擴展定義文件
<?php

return [
    'action_userlist' => ['app\admin\behavior\Userdatachange']
];

?>

第二種方法:在任何控制器或者全局控制器的構造函數中,動態創建映射關係,一般適用於通過數據庫配置好關係,在代碼中增加映射關係

function __construct(){

       Hook::add('action_userlist','app\admin\behavior\Userdatachange');

}

 

以上就是鉤子的使用小心得,記錄一下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章