当前位置:网站首页>Thinkphp5行为钩子Hook返回结果(数据)示例
Thinkphp5行为钩子Hook返回结果(数据)示例
2022-07-28 10:53:00 【幕尘枫】
导读:
在一些场景里,我们使用行为钩子Hook执行一些操作,执行完后要返回结果(数据),返回的值可能是字符串、数字或者数组。不懂用行为钩子的,先看我之前的这篇文章:
Thinkphp5.0行为钩子Hook的用法_幕尘枫的博客-CSDN博客_thinkphp 钩子
步骤:
1 、在application/common.php公共函数文件里添加如下方法:
//监听一个钩子
function hook($hook,$params=array()){
//后面的true参数表示只获取一个有效返回值,即只获取数组的第一个元素
return \Think\Hook::listen($hook,$params,null,true);
}2、在application/tags.php中定义行为钩子
// 应用行为扩展定义文件
return [
// 应用初始化
'app_init' => [],
// 应用开始
'app_begin' => [],
// 模块初始化
'module_init' => [],
// 操作开始执行
'action_begin' => [],
// 视图内容过滤
'view_filter' => [],
// 日志写入
'log_write' => [],
// 应用结束
'app_end' => [],
// +----------------------------------------------------------------------
// | 自定义的行为钩子
// +----------------------------------------------------------------------
'sendData' => ['app\behavior\Order'],
];3、添加一个行为文件 application/behavior/Order.php,示例代码如下:
<?php
namespace app\behavior;
use think\Db;
/**
* 若是该行为类中只有一个行为,只需要定义一个行为入口方法`run`即可
*/
class Order
{
// 当该行为类被绑定到钩子的时候,run行为方法则会在该钩子被触发的时候执行
public function run($params){
// 行为逻辑
}
//自定义的一个行为方法
public function sendData($params){
try{
//这里业务逻辑全部省略
$data=array(
"code" => 1,
"msg" => '发送数据成功'
);
} catch (\Exception $e) {
$data=array(
"code" => 0,
"msg" => '发送数据异常,Error:'.$e->getMessage()
);
}
return $data;
}
}看代码可以知道,Order.php里的sendData()方法返回的是一个数组
4、调用行为方法
//使用行为钩子发送数据
$params=array(
"account"=> "qq1234",
"money" => 10,
);
//返回的是一个数组
$arr= hook('sendData',$params);
边栏推荐
- leetcode:1300. 转变数组后最接近目标值的数组和【二分】
- Why is low code (apaas) popular again recently?
- 「学习笔记」树状数组
- Relevant knowledge points of hash table
- 低代码(aPaas)为什么最近又火了?
- JWT login authentication + token automatic renewal scheme, well written!
- outlook突然变得很慢很卡怎么解决
- 1天涨粉81W,打造爆款短视频的秘诀是什么?
- 栈和队列
- Ec20/ec25 4G module at instruction development summary
猜你喜欢

分体式测斜探头安装要点及注意事项

2022-2023 年十大应用程序发展趋势

Two dimensional prefix and

开源汇智创未来 | 2022开放原子全球开源峰会OpenAtom openEuler分论坛圆满召开
![Leetcode:1300. the sum of the array closest to the target value after transforming the array [dichotomy]](/img/da/51c4051464d52eae10d93e881cfdf5.png)
Leetcode:1300. the sum of the array closest to the target value after transforming the array [dichotomy]

What is WordPress

GIS数据漫谈(五)— 地理坐标系统

JS - modify the key name of the object in the array

大三下学期总结

使用 Terraform 在 AWS 上快速部署 MQTT 集群
随机推荐
cortex-M4与cortex-A7内核启动流程分析
Combination of const and pointer
Encryption defect of icloud Keychain in Apple mobile phone
C language uses double pointer to realize simple factory mode (polymorphism)
技术分享| 快对讲综合调度系统
栈和队列
小水滴2.0网站导航网模板
为什么传输前要进行编码与调制
CTF skill tree - file upload
学会使用MySQL的Explain执行计划,SQL性能调优从此不再困难
RHEL 6.4 安装svn和apache
Eslint, eslint Chinese document
本地化、低时延、绿色低碳:阿里云正式启用福州数据中心
Bc35 NB module at instruction development summary
Cortex-M内核管理全局中断的三种方式
Ec20/ec25 4G module at instruction development summary
ripro9.0修正升级版+WP两款美化包+稀有插件
Zero code | easily realize data warehouse modeling and build Bi Kanban
Office2013 input mathematical formula above
What is WordPress