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弹出对话框实现重定向代码
Jan 23 PHP
php递归方法实现无限分类实例代码
Feb 28 PHP
php使用function_exists判断函数可用的方法
Nov 19 PHP
PHP版微信公众平台红包API
Apr 02 PHP
php获取百度收录、百度热词及百度快照的方法
Apr 02 PHP
php实现微信公众号主动推送消息
Dec 31 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
May 16 PHP
深入理解PHP之OpCode原理详解
Jun 01 PHP
Linux系统中为php添加pcntl扩展
Aug 28 PHP
PHP递归遍历指定文件夹内的文件实现方法
Nov 15 PHP
php中字符串和整数比较的操作方法
Jun 06 PHP
Laravel向公共模板赋值方法总结
Jun 25 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
我的论坛源代码(五)
2006/10/09 PHP
ubuntu 编译安装php 5.3.3+memcache的方法
2010/08/05 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
jquery 通过name快速取值示例
2014/01/24 Javascript
文本框水印提示效果的简单实现代码
2014/02/22 Javascript
Javascript堆排序算法详解
2014/12/03 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
全国省市二级联动下拉菜单 js版
2016/05/10 Javascript
去除字符串左右两边的空格(实现代码)
2016/05/12 Javascript
jQuery双向列表选择器DIV模拟版
2016/11/01 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
浅谈JavaScript作用域和闭包
2017/09/18 Javascript
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
js实现简单模态框实例
2018/11/16 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
2019/04/12 Javascript
nodejs实现日志读取、日志查找及日志刷新的方法分析
2019/05/20 NodeJs
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
2020/04/28 Javascript
jQuery实现简单日历效果
2020/07/05 jQuery
Vue router传递参数并解决刷新页面参数丢失问题
2020/12/02 Vue.js
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
jQuery实现穿梭框效果
2021/01/19 jQuery
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
django将图片上传数据库后在前端显式的方法
2018/05/25 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
django 框架实现的用户注册、登录、退出功能示例
2019/11/28 Python
Pycharm插件(Grep Console)自定义规则输出颜色日志的方法
2020/05/27 Python
PyTorch-GPU加速实例
2020/06/23 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
2020/12/07 Python
某公司.Net方向面试题
2014/04/24 面试题
项目转让协议书
2014/10/27 职场文书
2015年教务工作总结
2015/05/23 职场文书
《草船借箭》教学反思
2016/02/23 职场文书
mysql函数全面总结
2021/11/11 MySQL
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server
使用scrapy实现增量式爬取方式
2022/06/21 Python