最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

thinkphp钩子实现方法

来源:动视网 责编:小采 时间:2020-11-03 13:37:47
文档

thinkphp钩子实现方法

thinkphp钩子实现方法:钩子是一种触发机制,如同一个陷阱,当程序运行到某个地方时就会触发这个陷阱,然后执行这个Hook,执行完成后,系统根据执行的不同结果继续进行。框架在\Think\Think->start()方法中调用Hook类中的import方法批量加载模式行为:默认为\Model\commo
推荐度:
导读thinkphp钩子实现方法:钩子是一种触发机制,如同一个陷阱,当程序运行到某个地方时就会触发这个陷阱,然后执行这个Hook,执行完成后,系统根据执行的不同结果继续进行。框架在\Think\Think->start()方法中调用Hook类中的import方法批量加载模式行为:默认为\Model\commo
 钩子是一种触发机制,如同一个陷阱,当程序运行到某个地方时就会触发这个陷阱,然后执行这个Hook,执行完成后,系统根据执行的不同结果继续进行。

框架在ThinkThink->start()方法中调用Hook类中的import方法批量加载模式行为:默认为Modelcommon.php中的配置文件,该文件定义行为扩展.

2、通过Hook:listen()方法监听tag标记的行为.Hook类中定义一个数组tags:tag为key;Behavior行为是value.通过Hook:exec()执行该标记的行为插件。

 /**
 * 监听标签的插件
 * @param string $tag 标签名称
 * @param mixed $params 传入参数
 * @return void
 */
 static public function listen($tag, &$params=NULL) {
 if(isset(self::$tags[$tag])) {
 if(APP_DEBUG) {
 G($tag.'Start');
 trace('[ '.$tag.' ] --START--','','INFO');
 }
 foreach (self::$tags[$tag] as $name) {
 APP_DEBUG && G($name.'_start');
 $result = self::exec($name, $tag,$params);
 if(APP_DEBUG){
 G($name.'_end');
 trace('Run '.$name.' [ RunTime:'.G($name.'_start',$name.'_end',6).'s ]','','INFO');
 }
 if(false === $result) {
 // 如果返回false 则中断插件执行
 return ;
 }
 }
 if(APP_DEBUG) { // 记录行为的执行日志
 trace('[ '.$tag.' ] --END-- [ RunTime:'.G($tag.'Start',$tag.'End',6).'s ]','','INFO');
 }
 }
 return;
 }

 /**
 * 执行某个插件
 * @param string $name 插件名称
 * @param string $tag 方法名(标签名) 
 * @param Mixed $params 传入的参数
 * @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教程

文档

thinkphp钩子实现方法

thinkphp钩子实现方法:钩子是一种触发机制,如同一个陷阱,当程序运行到某个地方时就会触发这个陷阱,然后执行这个Hook,执行完成后,系统根据执行的不同结果继续进行。框架在\Think\Think->start()方法中调用Hook类中的import方法批量加载模式行为:默认为\Model\commo
推荐度:
标签: 方法 php 实现
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top