TP框架Hook的使用

hook(钩子)暨行为扩展

行为扩展实际上就是在一些流程里埋下了一个钩子,你可以往钩子里添加你自己的  
业务逻辑,当程序执行到某个钩子位置时将自动触发你的业务逻辑

使用步骤

 1. 创建钩子 
 2. 注册钩子 
 3. 监听

创建钩子

方法一:
tp框架的自带钩子位于“\ThinkPHP\Library\Behavior”文件里
按照他们的规则自己书写一个钩子

TP框架Hook的使用_第1张图片

方法二:
我们自己书写钩子(两种方法)

TP框架Hook的使用_第2张图片
TP框架Hook的使用_第3张图片

注册钩子

方案一:
调用Hook的add方法 :Hook::add('test','Home\Behavior\Test');
方案二:
在配置文件里添加我们的钩子

TP框架Hook的使用_第4张图片

监听

使用Hook的listen方法:Hook::listen('test');
添加监听后会自动调用我们的插件

注释

为什么类名以“Behavior”结尾时方法名要为“run”?
这是他们的机制问题,看源码就知道了
    /**
     * 执行某个插件
     * @param string $name 插件名称
     * @param string $tag 方法名(标签名)     
     * @param Mixed $params 传入var_dump($name);的参数
     * @return void
     */
    static public function exec($name, $tag,&$params=NULL) {
        if('Behavior' == substr($name,-8) ){
            // 行为扩展必须用run入口方法
            $tag    =   'run';
        }
        $addon   = new $name();
        return $addon->$tag($params);
    }

你可能感兴趣的:(thinkphp)