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

2025-05-27 0 35

本文实例讲述了thinkphp5框架简单实现钩子(hook)行为的方法。分享给大家供大家参考,具体如下:

实现在一个方法开始和结束加入两个行为:api_init、api_end

框架的搭建和模块的建立这里就省略了,请不太熟练的同学自行学习。

下面直接进入步骤:

1,先创建一个行为类 \\application\\api\\behavior\\aoptest.php

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33
<?php

namespace app\\api\\behavior;

//行为类

class aoptest{

//绑定api初始化

public function apiinit(&$params){

//参数获取

$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

?

1

2

3

4

5

6
// 应用行为扩展定义文件

return [

//接口初始化

'api_init' => ['app\\\\api\\\\behavior\\\\aoptest'],

'api_end' => ['app\\\\api\\\\behavior\\\\aoptest'],

];

3,在要加入行为的类的方法内加入行为监听。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19
<?php

namespace app\\api\\controller;

use \\think\\hook;

class index

{

//访问url http://app.tp5.com/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,访问查看输出效果:

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

5,文件分布示意

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

简单的实现了一下,希望给想了解的同学一点启发。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

原文链接:https://blog.csdn.net/morning99/article/details/80169844

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Thinkphp5框架简单实现钩子(Hook)行为的方法示例 https://www.kuaiidc.com/71316.html

相关文章

发表评论
暂无评论