TP框架Hook的使用

来源:互联网 发布:数据库同步工具 编辑:程序博客网 时间:2024/05/17 08:11

hook(钩子)暨行为扩展

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

使用步骤

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

创建钩子

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

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


注册钩子

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

监听

使用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);    }
原创粉丝点击