主要分爲三個功能點:
一:行爲定義
方法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'); //在需要調用行爲的位置,放置鉤子監聽調用