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设计模式之责任链模式的深入解析
Jun 13 PHP
php中读写文件与读写数据库的效率比较分享
Oct 19 PHP
php中OR与|| AND与&&的区别总结
Oct 26 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
Mar 19 PHP
详解php中空字符串和0之间的关系
Oct 23 PHP
PHP简单获取随机数的常用方法小结
Jun 07 PHP
PHP实现的mysql主从数据库状态检测功能示例
Jul 20 PHP
PHP设计模式之工厂模式实例总结
Sep 01 PHP
PHP中PCRE正则解析代码详解
Apr 26 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
May 09 PHP
Laravel框架实现多个视图共享相同数据的方法详解
Jul 09 PHP
php使用redis的几种常见操作方式和用法示例
Feb 20 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
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
Yii多表联合查询操作详解
2016/06/02 PHP
PHP类相关知识点实例总结
2016/09/28 PHP
PHP-FPM和Nginx的通信机制详解
2019/02/01 PHP
PHP7引入的"??"和"?:"的区别讲解
2019/04/08 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
jQuery hover 延时器实现代码
2011/03/12 Javascript
ajax更新数据后,jquery、jq失效问题
2011/03/16 Javascript
jQuery的Ajax的自动完成功能控件简要说明
2013/02/22 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
jQuery实现的五子棋游戏实例
2015/06/13 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
vue.js学习之递归组件
2016/12/13 Javascript
详解vue 模拟后台数据(加载本地json文件)调试
2017/08/25 Javascript
使用jQuery 操作table 完成单元格合并的实例
2017/12/27 jQuery
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
vue 实现数字滚动增加效果的实例代码
2018/07/06 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
2019/01/20 Javascript
JS函数进阶之继承用法实例分析
2020/01/15 Javascript
pandas数据预处理之dataframe的groupby操作方法
2018/04/13 Python
python实现手机销售管理系统
2019/03/19 Python
Django ORM 常用字段与不常用字段汇总
2019/08/09 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
2020/04/08 Python
详解如何修改python中字典的键和值
2020/09/29 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
超级搞笑检讨书
2014/01/15 职场文书
2014年端午节演讲稿范文
2014/05/23 职场文书
作文评语集锦
2014/12/25 职场文书
2015年世界水日活动总结
2015/02/09 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
少儿励志名言(80句)
2019/08/14 职场文书
导游词之江苏溱潼古镇
2019/11/27 职场文书