
1、创建钩子行为
我们自己定义的标签位可以直接放在ThinkBehaviors中,也可以放在应用目录中,比如说Home模块下,新建一个Behaviors的文件夹,在文件夹内新建:
标签名+Behavior.class.PHP
注:需要带Behavior的原因,见代码:
立即学习“PHP免费学习笔记(深入)”;
static public function exec($name, $tag,&$params=NULL) { if('Behavior' == substr($name,-8) ){ // 行为扩展必须用run入口方法 $tag = 'run'; } $addon = new $name(); return $addon->$tag($params);}
相关推荐:《ThinkPHP教程》
在这里我自己自定义的标签名是My
namespace Behavior;use ThinkBehavior;class MyBehavior extends Behavior{ public function run(&$arg){ echo 'Thinkphp 中的'.$arg['name'].'功能,'.$arg['value'].'中...'; }}
注意类名大小写
AppMall应用商店
AI应用商店,提供即时交付、按需付费的人工智能应用服务
56 查看详情
2、将钩子添加进钩子集中
方法一(手动注册):直接在控制器中添加:
Hook::add('addd','BehavioradBehavior');
方法二(自动注册):
在Conf文件夹里面(完整路径D:hinkpplicationHomeConfags.php,当然这是我的情况)tags.php的内容:
return array(//'action_begin'=>array('HomeBehaviorstest','HomeBehaviorstest'), //一个标签位可以有多个行为,使用数组即可。 // 如果是3.2.1版本 则需要改成 // 'action_begin'=>array('HomeBehaviorstestBehavior','HomeBehaviorstestBehavior'), 'my'=>array('BehaviorsMyBehavior'));
3、添加监听(我这里才用模板中直接监听使用)
此处如果报找不到hook方法,请在ThinkPHP/Common/functions.php中添加(当然也可以在其他公共文件):
function hook($hook,$params= array()){ ThinkHook::listen($hook,$params);}
最后在模板中使用:
{:hook('my', array('name'=>'钩子','value'=>'学习'))}
以上就是thinkphp5的钩子怎么用的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/213092.html
微信扫一扫
支付宝扫一扫