Thinkphp5钩子与行为小实例

【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'); //在需要调用行为的位置,放置钩子监听调用



    推荐阅读