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模板页面中分页代码的解析
Feb 06 PHP
PHP 变量定义和变量替换的方法
Jul 30 PHP
从Web查询数据库之PHP与MySQL篇
Sep 25 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
Apr 29 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
Jun 30 PHP
PHP return语句的另一个作用
Jul 30 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
利用PHP将图片转换成base64编码的实现方法
Sep 13 PHP
php实现支持中文的文件下载功能示例
Aug 30 PHP
PHP异步进程助手async-helper
Feb 05 PHP
ThinkPHP5 的简单搭建和使用详解
Nov 15 PHP
PHP+Mysql分布式事务与解决方案深入理解
Feb 27 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
php pki加密技术(openssl)详解
2013/07/01 PHP
php缓存技术详细总结
2013/08/07 PHP
php使用smtp发送支持附件的邮件示例
2014/04/13 PHP
php中switch语句用法详解
2015/08/17 PHP
微信公众平台开发之配置与请求
2015/08/26 PHP
详解js异步文件加载器
2016/01/24 PHP
Thinkphp3.2实用篇之计算型验证码示例
2017/02/09 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
jquery 应用代码 方便的排序功能
2010/02/06 Javascript
jQuery 性能优化手册 推荐
2010/02/23 Javascript
JavaScript调用Activex控件的事件的实现方法
2010/04/11 Javascript
jquery删除提示框弹出是否删除对话框
2014/01/07 Javascript
JavaScript获取XML数据附示例截图
2014/03/05 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
纯js模拟div层弹性运动的方法
2015/07/27 Javascript
Bootstrap每天必学之响应式导航、轮播图
2016/04/25 Javascript
javascript 解决浏览器不支持的问题
2016/09/24 Javascript
完美解决js传递参数中加号和&号自动改变的方法
2016/10/11 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
Node.js 8 中的重要新特性
2017/06/28 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
2018/07/30 Javascript
vue实现百度搜索功能
2020/12/28 Javascript
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
给Python中的MySQLdb模块添加超时功能的教程
2015/05/05 Python
python实现狄克斯特拉算法
2019/01/17 Python
python实现京东订单推送到测试环境,提供便利操作示例
2019/08/09 Python
Python使用get_text()方法从大段html中提取文本的实例
2019/08/27 Python
纯html5+css3下拉导航菜单实现代码
2013/03/18 HTML / CSS
GLAMGLOW格莱魅美国官网:美国知名的面膜品牌
2016/12/31 全球购物
荷兰皇家航空公司官方网站:KLM Royal Dutch Airlines
2017/12/07 全球购物
储备店长岗位职责
2015/04/14 职场文书
python3 删除所有自定义变量的操作
2021/04/08 Python
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
2021/06/26 Java/Android
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android