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 模拟$_PUT实现代码
Mar 15 PHP
ThinkPHP中实例Model方法的区别说明
Aug 21 PHP
php中函数的形参与实参的问题说明
Sep 01 PHP
php自动获取字符串编码函数mb_detect_encoding
May 31 PHP
php中使用redis队列操作实例代码
Feb 07 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
Apr 15 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
Apr 24 PHP
PHP实现取得HTTP请求的原文
Aug 18 PHP
简单谈谈PHP中strlen 函数
Feb 27 PHP
PHP程序员的技术成长规划
Mar 25 PHP
php二维数组按某个键值排序的实例讲解
Feb 15 PHP
php中对象引用和复制实例分析
Aug 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
当海贼王变成JOJO风
2020/03/02 日漫
php SQL之where语句生成器
2009/03/24 PHP
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
PHP PDOStatement::fetchObject讲解
2019/02/01 PHP
JS实现定时页面弹出类似QQ新闻的提示框
2013/11/07 Javascript
JS在IE下缺少标识符的错误
2014/07/23 Javascript
JavaScript仿支付宝密码输入框
2015/12/29 Javascript
jquery按回车键实现表单提交的简单实例
2016/05/25 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
JS+canvas画一个圆锥实例代码
2017/12/13 Javascript
深入理解js 中async 函数的含义和用法
2018/05/13 Javascript
react实现点击选中的li高亮的示例代码
2018/05/24 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
全面解析JavaScript Module模式
2020/07/24 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
超详细小程序定位地图模块全系列开发教学
2020/11/24 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
200 行python 代码实现 2048 游戏
2018/01/12 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
简单了解Python生成器是什么
2019/07/02 Python
python实现一个函数版的名片管理系统过程解析
2019/08/27 Python
python3实现高效的端口扫描
2019/08/31 Python
CSS3 animation实现逐帧动画效果
2016/06/02 HTML / CSS
CSS3中Transition动画属性用法详解
2016/07/04 HTML / CSS
国外平面设计素材网站:The Hungry JPEG
2017/03/28 全球购物
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
俄罗斯电子产品在线商店:UltraTrade
2020/01/30 全球购物
C#和SQL Server的面试题
2016/08/12 面试题
2014年扫黄打非工作总结
2014/12/03 职场文书
辞职信的写法
2015/02/27 职场文书
2015年党总支工作总结
2015/05/25 职场文书
2019秋季运动会口号
2019/06/25 职场文书
SpringBoot整合Mybatis Generator自动生成代码
2021/08/23 Java/Android