Thinkphp5鉤子與行爲小實例

主要分爲三個功能點:

一:行爲定義

方法1,一般寫在behaviour文件夾,例如 app\index\behavior\Actionlist 類

/*
* 測試行爲類
*/

namespace app\index\behavior;

/**
* Description of Actionlist
* Date 2018年2月8日 18:16:32
* @author Carter
*/

class Actionlist {

    //run爲行爲的默認執行類,在有和行爲標籤相同名字的方法名情況下,不執行run,執行與行爲標籤同名的方法,方法名爲行爲標籤名的駝峯寫法,比如app_init 對應appInit()

    public function run(){
        dump('aaa');
    }

    public function appInit(){
        dump('bbbb');
    }

}

方法2,閉包支持(添加行爲標籤時直接調用方法)

//鉤子與行爲

public function index4(){

    Hook::add('action_list',function(){
        dump('1111');
    });

    Hook::listen('action_list');
}

二:行爲綁定(鉤子綁定行爲)

方法1,一般在應用目錄和模塊目錄下面的tags.php裏寫入行爲標籤與行爲的關聯

//測試綁定

'action_list' => [
    'app\\index\\behavior\\Actionlist'
],

方法2,在程序裏直接添加程序綁定

Hook::add('action_list','app\\index\\behavior\\Actionlist');

三:鉤子放置

Hook::listen('action_list'); //在需要調用行爲的位置,放置鉤子監聽調用

 

 

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