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 程序员的调试技术小结
Nov 15 PHP
强烈声明: 不要使用(include/require)_once
Jun 06 PHP
一个好用的PHP验证码类实例分享
Dec 27 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
Jun 19 PHP
为PHP5.4开启Zend OPCode缓存
Dec 26 PHP
php正则匹配html中带class的div并选取其中内容的方法
Jan 13 PHP
PHP实现的下载远程图片自定义函数分享
Jan 28 PHP
Linux系统递归生成目录中文件的md5的方法
Jun 29 PHP
PHP比较运算符的详细介绍
Sep 29 PHP
Yii2设置默认控制器的两种方法
May 19 PHP
PHP简单获取随机数的常用方法小结
Jun 07 PHP
laravel中Redis队列监听中断的分析
Sep 14 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学习之数组值的操作
2011/04/17 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
2012/12/11 PHP
PHP递归遍历指定目录的文件并统计文件数量的方法
2015/03/24 PHP
js下弹出窗口的变通
2007/04/18 Javascript
javascript中使用replaceAll()函数实现字符替换的方法
2010/12/25 Javascript
容易被忽略的JS脚本特性
2011/09/13 Javascript
JQuery获取各种宽度、高度(format函数)实例
2013/03/04 Javascript
js判断输入是否为数字的具体实例
2013/08/03 Javascript
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
js实现拉幕效果的广告代码
2015/09/02 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
完美解决input[type=number]无法显示非数字字符的问题
2017/02/28 Javascript
微信小程序图片横向左右滑动案例
2017/05/19 Javascript
详解webpack性能优化——DLL
2017/10/20 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
2018/05/16 Javascript
Vue 实现html中根据类型显示内容
2019/10/28 Javascript
微信小程序页面渲染实现方法
2019/11/06 Javascript
JS数据类型判断的几种常用方法
2020/07/07 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
2020/07/15 Javascript
js删除对象中的某一个字段的方法实现
2021/01/11 Javascript
Python中用memcached来减少数据库查询次数的教程
2015/04/07 Python
python 利用栈和队列模拟递归的过程
2018/05/29 Python
Python中extend和append的区别讲解
2019/01/24 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
2020/06/02 Python
使用Python操作MySQL的小技巧
2020/09/10 Python
乡镇信息公开实施方案
2014/03/23 职场文书
节能标语大全
2014/06/21 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
教师个人发展总结
2015/02/11 职场文书
数学考试作弊检讨书300字
2015/02/16 职场文书
现货白银电话营销话术
2015/05/29 职场文书
Python字典和列表性能之间的比较
2021/06/07 Python
【海涛dota】偶遇拉娜娅 质量局德鲁伊第一视角解说
2022/04/01 DOTA