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 相关文章推荐
WML,Apache,和 PHP 的介绍
Oct 09 PHP
Php注入点构造代码
Jun 14 PHP
php学习笔记 PHP面向对象的程序设计
Jun 13 PHP
php函数的常用方法及注意之处小结
Jul 10 PHP
php中邮箱地址正则表达式实现与详解
Apr 24 PHP
php实现两个数组相加的方法
Feb 17 PHP
php实现encode64编码类实例
Mar 24 PHP
摘自织梦CMS的HTTP文件下载类
Aug 08 PHP
PHP魔术方法使用方法汇总
Feb 14 PHP
PHP Laravel 上传图片、文件等类封装
Aug 16 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
Feb 10 PHP
浅谈Laravel中的三种中间件的作用
Oct 13 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
肝肠寸断了解下!盘点史上最伤心的十大动漫
2020/03/04 日漫
收音机玩机评测 406 篇视频合集
2020/03/11 无线电
PHP中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
新浪中用来显示flash的函数
2007/04/02 Javascript
javascript整除实现代码
2010/11/23 Javascript
javascript 文件的同步加载与异步加载实现原理
2012/12/13 Javascript
javascript字符串循环匹配实例分析
2015/07/17 Javascript
探讨JavaScript标签位置的存放与功能有无关系
2016/01/15 Javascript
jQuery代码实现表格中点击相应行变色功能
2016/05/09 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
常用jQuery选择器汇总
2017/02/02 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
layui.js实现的表单验证功能示例
2017/11/15 Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
2018/07/31 jQuery
js中对象和面向对象与Json介绍
2019/01/21 Javascript
Vue动态生成el-checkbox点击无法赋值的解决方法
2019/02/21 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
Vue路由的模块自动化与统一加载实现
2020/06/05 Javascript
[00:23]DOTA2群星共贺开放测试 25日无码时代来袭
2013/09/23 DOTA
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
分享一个常用的Python模拟登陆类
2015/03/29 Python
Python采用Django开发自己的博客系统
2020/09/29 Python
python绘制简单折线图代码示例
2017/12/19 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
Python3.5装饰器原理及应用实例详解
2019/04/30 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
德国大型的家具商店:Pharao24.de
2016/10/02 全球购物
SQL注入攻击的种类有哪些
2013/12/30 面试题
linux面试题参考答案(10)
2016/10/26 面试题
小学教师师德反思
2014/02/03 职场文书
五年后的职业生涯规划
2014/03/04 职场文书
骨干教师考核方案
2014/05/09 职场文书
烹饪大赛策划方案
2014/05/26 职场文书
元旦标语大全
2014/10/09 职场文书