研究分析ThinkPHP的钩子、行为扩展和插件机制

下面由thinkphp教程栏目给大家研究分析thinkphp的钩子、行为扩展和插件机制,希望对需要的朋友有所帮助!

thinkphp的钩子、行为扩展和插件机制

thinkphp

    return Array(         'mytest' => array('PortalBehaviortestBehavior'),     );
 ThinkHook::add('action_begin','HomeBehaviorstest1Behavior');
  ThinkHook::add('action_begin','HomeBehaviorstest1Behavior');
   static public function exec($name, $tag,&$params=NULL) {        if('Behavior' == substr($name,-8) ){           // 行为扩展必须用run入口方法           $class = $name;           $tag    =   'run';        }else{           $class   =  "plugins{$name}{$name}Plugin";        }        if(class_exists($class)){ //ThinkCMF NOTE 插件或者行为存在时才执行           $addon   = new $class();           return $addon->$tag($params);        }    }
    ThinkHook::listen('标签名'[,参数]);             tag('标签名'[,参数]);
 <?php     namespace HomeBehaviors;     class testBehavior extends ThinkBehavior{         //行为执行入口         public function run(&$param){              }     }
  <?php     namespace plugins	est;         use  CommonLibPlugin;     class testPlugin extends Plugin {         public function mytest($param){            echo 'this is plugin test-mytest';         }                  public function yourtest($param){            echo 'this is plugin test-yourtest'; //另一个插件钩子的执行入口         }     }

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享