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 相关文章推荐
Oracle Faq(Oracle的版本)
Oct 09 PHP
文章推荐系统(二)
Oct 09 PHP
用PHP将网址字符串转换成超链接(网址或email)
May 25 PHP
php长字符串定义方法
Jul 12 PHP
PHP中浮点数计算比较及取整不准确的解决方法
Jan 09 PHP
PHP数组操作――获取数组最后一个值的方法
Apr 14 PHP
php简单实现查询数据库返回json数据
Apr 16 PHP
php实现的数字验证码及数字运算验证码
Jul 30 PHP
php中引用符号(&)的使用详细介绍
Dec 06 PHP
Yii 2中的load()和save()示例详解
Aug 03 PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 PHP
Laravel5框架自定义错误页面配置操作示例
Apr 17 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
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/03/02 无线电
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
2010/08/21 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
详解PHP中的Traits
2015/07/29 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
2016/01/07 PHP
完美解决在ThinkPHP控制器中命名空间的问题
2017/05/05 PHP
js用图作提交按钮或超连接
2008/03/26 Javascript
javascript options属性集合操作代码
2009/12/28 Javascript
jquery.fileEveryWhere.js 一个跨浏览器的file显示插件
2011/10/24 Javascript
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
jQuery动画效果图片轮播特效
2016/01/12 Javascript
Javascript必知必会(四)js类型转换
2016/06/08 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
JQuery动态添加Select的Option元素实现方法
2016/08/29 Javascript
详解webpack与SPA实践之开发环境搭建
2017/12/18 Javascript
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
2019/08/17 Javascript
python 七种邮件内容发送方法实例
2014/04/22 Python
python写的一个squid访问日志分析的小程序
2014/09/17 Python
深入理解python中的浅拷贝和深拷贝
2016/05/30 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
对python中for、if、while的区别与比较方法
2018/06/25 Python
Python 实现Serial 与STM32J进行串口通讯
2019/12/18 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
Python unittest discover批量执行代码实例
2020/09/08 Python
纯CSS3实现圆圈动态发光特效动画的示例代码
2021/03/08 HTML / CSS
如何防止同一个帐户被多人同时登录
2013/08/01 面试题
竞选部门副经理的自荐书范文
2014/02/11 职场文书
致100米运动员广播稿
2014/02/14 职场文书
文化产业实施方案
2014/06/07 职场文书
杨善洲观后感
2015/06/04 职场文书
医院保洁员管理制度
2015/08/05 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
新手必备Python开发环境搭建教程
2021/05/28 Python
CPU不支持Windows11系统怎么办
2021/11/21 数码科技