Thinkphp5行为使用方法汇总


Posted in PHP onDecember 21, 2017

在应用或模块下建 behavior目录,目录内建行为类文件Test.PHP(以下以home模块为例)

namespace app/home/behavior;//注意应用或模块的不同命名空间 
class Test 
{ 
public function run(&$params)
{   
echo $params;  
} }

方法一

1.在入口文件中,增加: define('APP_HOOK',true);

2.home模块下建tags.PHP文件定义行为

return [  
'app_init'=> [  
'app//home//behavior//Test', //注意行为的命名空间(下同) 
], 
'zzzzz'=> [//自定义标签位   
'app//home//behavior//Test', 
], 
//................. ];

3.控制器方法内需要的地方侦听行为

/think/Hook::listen('app_init',$params);//参数为变量(下同) /think/Hook::listen('zzzzz',$params);//自定义

方法二

1.home模块的公共文件(common.PHP)或控制器方法内绑定行为到标签位

/think/Hook::add('app_init','app//home//behavior//Test'); /think/Hook::add('zzzz','app//home//behavior//Test');//自定义

2.控制器方法内需要的地方侦听行为

/think/Hook::listen('app_init',$params); /think/Hook::listen('zzzzz',$params);//自定义

方法三

在控制器方法内需要的地方直接执行行为

/think/Hook::exec('app//home//behavior//Test','run',$params);

方法四

在控制器方法内直接使用闭包函数

$a='闭包函数'; /think/Hook::add('zzzz',function($a){ var_dump($a);}); /think/Hook::listen('zzzz',$a);

方法五

行为类绑定到多个标签

1.Test.PHP定义如下:

namespace app/home/behavior;
class Test {  
public function app_init(&$params){  
echo 'app_init';  } 
 public function app_end(&$params){   
echo 'app_end';  
} }

2.home模块的公共文件(common.PHP)或控制器方法内绑定行为到标签位

/think/Hook::add('app_init','app//home//behavior//Test');
/think/Hook::add('app_end','app//home//behavior//Test');

3.控制器方法内需要的地方侦听行为

/think/Hook::listen('app_init',$params); /think/Hook::listen('app_end',$params);

总结

以上所述是小编给大家介绍的Thinkphp5行为使用方法汇总,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
php中常用编辑器推荐
Jan 02 PHP
PHP中PDO的错误处理
Sep 04 PHP
深入array multisort排序原理的详解
Jun 18 PHP
2014年10个最佳的PHP图像操作库
Jul 14 PHP
Eclipse的PHP插件PHPEclipse安装和使用
Jul 20 PHP
浅谈php7的重大新特性
Oct 23 PHP
双冒号 ::在PHP中的使用情况
Nov 05 PHP
PHP生成各种常见验证码和Ajax验证过程
Jan 10 PHP
PHP实现负载均衡下的session共用功能
Apr 17 PHP
PHP实现登录验证码校验功能
May 17 PHP
Yii2压缩PHP中模板代码的输出问题
Aug 28 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
Sep 05 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
Dec 21 #PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 #PHP
PHP实现生成模糊图片的方法示例
Dec 21 #PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
Dec 21 #PHP
在云虚拟主机部署thinkphp5项目的步骤详解
Dec 21 #PHP
php获取微信共享收货地址的方法
Dec 21 #PHP
php实现socket推送技术的示例
Dec 20 #PHP
You might like
DOTA2 无惧惊涛骇浪 昆卡大型水友攻略
2020/04/20 DOTA
php+mysql实现数据库随机重排实例
2014/10/17 PHP
php通过递归方式复制目录和子目录的方法
2015/03/13 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
2020/11/22 PHP
Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
2010/09/12 Javascript
基于ajax实现文件上传并显示进度条
2015/08/03 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
JavaScript从0开始构思表情插件
2016/07/26 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
2016/09/13 Javascript
关于angularJs指令的Scope(作用域)介绍
2016/10/25 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
2018/02/12 jQuery
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
2018/11/23 Javascript
微信小程序实现打卡日历功能
2020/09/21 Javascript
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
在layer弹层layer.prompt中,修改placeholder的实现方法
2019/09/27 Javascript
node.js事件轮询机制原理知识点
2019/12/22 Javascript
JS数组Reduce方法功能与用法实例详解
2020/04/29 Javascript
[01:11:21]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第三场 3月7日
2021/03/11 DOTA
windows下添加Python环境变量的方法汇总
2018/05/14 Python
Python实现的特征提取操作示例
2018/12/03 Python
python实现QQ邮箱/163邮箱的邮件发送
2019/01/22 Python
基于Python的PIL库学习详解
2019/05/10 Python
Django组件content-type使用方法详解
2019/07/19 Python
Python3.0 实现决策树算法的流程
2019/08/08 Python
美国用餐电影院:Alamo Drafthouse Cinema
2020/01/23 全球购物
实习教师自我鉴定
2013/09/27 职场文书
出纳员的岗位职责
2014/02/22 职场文书
解放思想演讲稿
2014/09/11 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
高中生军训感言
2015/08/01 职场文书
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫