zoukankan      html  css  js  c++  java
  • thinkphp 中的钩子应用

    1 创建钩子行为:

    我们自己定义的标签位可以直接放在ThinkBehaviors中,也可以放在应用目录中,比如说Home模块下,新建一个Behaviors的文件夹,在文件夹内新建 

    标签名+Behavior.class.PHP 

    注:需要带Behavior的原因,见代码:

    static public function exec($name, $tag,&$params=NULL) {
            if('Behavior' == substr($name,-8) ){
                // 行为扩展必须用run入口方法
                $tag    =   'run';
            }
            $addon   = new $name();
            return $addon->$tag($params);
        }

    在这里我自己自定义的标签名是My

    namespace Behavior;
    
    use ThinkBehavior;
    
    class MyBehavior extends Behavior
    {
        public function run(&$arg){
            echo 'Thinkphp 中的'.$arg['name'].'功能,'.$arg['value'].'中...';
        }
    }

    注意类名大小写

    2 将钩子添加进钩子集中

    方法一(手动注册):直接在控制器中添加  Hook::add('addd','Behavior\adBehavior');  

    方法二(自动注册):

    在Conf文件夹里面(完整路径D: hinkapplicationHomeConf ags.php,当然这是我的情况)tags.php的内容:

    return array(
    //'action_begin'=>array('Home\Behaviors\test','Home\Behaviors\test'),
      //一个标签位可以有多个行为,使用数组即可。
      // 如果是3.2.1版本 则需要改成
      // 'action_begin'=>array('Home\Behaviors\testBehavior','Home\Behaviors\testBehavior'),
      'my'=>array('Behaviors\MyBehavior')
    );

    3 添加监听:(我这里才用模板中直接监听使用)

    此处如果报找不到hook方法,请在ThinkPHP/Common/functions.php中添加(当然也可以在其他公共文件):

    function hook($hook,$params= array()){
        ThinkHook::listen($hook,$params);
    }

    最后在模板中使用:

    {:hook('my', array('name'=>'钩子','value'=>'学习'))}

    参考网址如下:

    http://blog.csdn.net/laughing2333/article/details/48683671

    http://www.jb51.net/article/97081.htm

    http://blog.csdn.net/nebs1992fmx/article/details/43819137

    http://www.thinkphp.cn/topic/21323.html

  • 相关阅读:
    20200209 ZooKeeper 3. Zookeeper内部原理
    20200209 ZooKeeper 2. Zookeeper本地模式安装
    20200209 Zookeeper 1. Zookeeper入门
    20200206 尚硅谷Docker【归档】
    20200206 Docker 8. 本地镜像发布到阿里云
    20200206 Docker 7. Docker常用安装
    20200206 Docker 6. DockerFile解析
    20200206 Docker 5. Docker容器数据卷
    20200206 Docker 4. Docker 镜像
    Combining STDP and Reward-Modulated STDP in Deep Convolutional Spiking Neural Networks for Digit Recognition
  • 原文地址:https://www.cnblogs.com/sien6/p/7099418.html
Copyright © 2011-2022 走看看