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动态生成虚拟现实VRML网页
Oct 09 PHP
新手学PHP之数据库操作详解及乱码解决!
Jan 02 PHP
PHP写的求多项式导数的函数代码
Jul 04 PHP
通过5个php实例细致说明传值与传引用的区别
Aug 08 PHP
PHP类继承 extends使用介绍
Jan 14 PHP
destoon切换城市后实现logo旁边显示地区名称的方法
Aug 21 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
Oct 30 PHP
php通过session防url攻击方法
Dec 10 PHP
PHP函数extension_loaded()用法实例
Jan 19 PHP
PHP实现 APP端微信支付功能
Jun 22 PHP
php伪静态验证码不显示的解决方案
Sep 26 PHP
关于PHP中interface的用处详解
Jul 26 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中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
javascript函数库-集合框架
2007/04/27 Javascript
JavaScript Event学习第三章 早期的事件处理程序
2010/02/07 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
2014/01/02 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
详解JavaScript正则表达式中的global属性的使用
2015/06/16 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
2015/11/26 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
AngularJS 实现JavaScript 动画效果详解
2016/09/08 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
如何获取元素的最终background-color
2017/02/06 Javascript
ES6新特性七:数组的扩充详解
2017/04/21 Javascript
Vue实现typeahead组件功能(非常靠谱)
2017/08/26 Javascript
vue iView 上传组件之手动上传功能
2018/03/16 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
2018/08/08 Javascript
微信小程序websocket聊天室的实现示例代码
2019/02/12 Javascript
react 移动端实现列表左滑删除的示例代码
2019/07/04 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
[02:37]TI8勇士令状不朽珍藏II视频展示
2018/06/23 DOTA
[03:11]完美世界DOTA2联赛PWL DAY8集锦
2020/11/09 DOTA
python 实现插入排序算法
2012/06/05 Python
Python 模板引擎的注入问题分析
2017/01/01 Python
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
2017/08/31 Python
Python字典,函数,全局变量代码解析
2017/12/18 Python
Python中XlsxWriter模块简介与用法分析
2018/04/24 Python
日本钓鱼渔具和户外用品网上商店:naturum
2016/08/07 全球购物
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
十一酒店活动方案
2014/02/20 职场文书
公务员年度个人总结
2015/02/12 职场文书
拔河比赛新闻稿
2015/07/17 职场文书
送给火锅店的创意营销方案!
2019/07/08 职场文书
python 实现的截屏工具
2021/05/08 Python
Java框架入门之简单介绍SpringBoot框架
2021/06/18 Java/Android
NodeJs使用webpack打包项目的方法详解
2022/02/28 NodeJs