简单实现钩子(Hook)行为的方法示例

简单实现钩⼦(Hook)⾏为的⽅法⽰例
本⽂实例讲述了Thinkphp5框架简单实现钩⼦(Hook)⾏为的⽅法。分享给⼤家供⼤家参考,具体如下:
实现在⼀个⽅法开始和结束加⼊两个⾏为:api_init、api_end
框架的搭建和模块的建⽴这⾥就省略了,请不太熟练的同学⾃⾏学习。
人体束缚1,先创建⼀个⾏为类 \application\api\behavior\AopTest.php
<?php
namespace app\api\behavior;
//⾏为类
class AopTest{
//绑定api初始化
public function apiInit(&$params){
/mirna靶基因分析
/参数获取
$id=input('id');//获取请求参数
$uid=session('UID');//获取session 登录uid
//打印输出
echo PHP_EOL;
echo'ip检查'.$params.' GET:'.$id;
echo' uid='.$uid;
echo PHP_EOL;
//获取当前模块控制器名⽅法名称
$request= \think\Request::instance();
$controller_name=$request->controller();
$model_name=$request->module();
$action_name=$request->action();
echo' controller_name='.$controller_name.' model_name='.$model_name.' action_name='.$action_name;
//构建数组
$data=array();
$data['status']=0;
$data['msg']='没有权限';
//exit(json_encode($data));//以json格式返回数据
}
//绑定api结束
public function apiEnd(&$params){
echo PHP_EOL;
echo'⽇志记录'.$params;
echo PHP_EOL;
}
}
2,配置标签 \application\api\tags.php
这⾥要注意的是配置的key就是对应的⾏为类内的⽅法,如果⾏为类内只需要⼀个⽅法,默认⽤run⽅法,如果是多个⽅法则对应的标签的key,
注: V5.0.4+ 版本以上,⾏为类的⽅法需要采⽤驼峰法命名 apiInit,如果在版本以下可以⽤ api_init
// 应⽤⾏为扩展定义⽂件
return[
//接⼝初始化
长效连续捕鼠器
'api_init'=>['app\\api\\behavior\\AopTest'],
'api_end'=>['app\\api\\behavior\\AopTest'],
];
3,在要加⼊⾏为的类的⽅法内加⼊⾏为监听。
<?php
namespace app\api\controller;
use\think\Hook;
class Index
{
//访问url app.tp5/index.php/api/index/index?id=5 public function index()
小型自动胶带封箱机
{
session_start();
session('UID',123);微型核电池
$id=input('id');
布袋弹
$params1='参数1';
$res= Hook::listen('api_init',$params1);
echo var_export($res,true);
echo'api index';
$params2='参数2';
Hook::listen('api_end',$params2);
}
}
4,访问查看输出效果:
5,⽂件分布⽰意

本文发布于:2024-09-20 14:19:29,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/310774.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:获取   框架   结束   驼峰   模块   配置
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议