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

 

 

你可能感兴趣的:(thinkphp)