主要分为三个功能点:
一:行为定义
方法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'); //在需要调用行为的位置,放置钩子监听调用