新浪博客

Thinkphp事件机制两种实现方式详解

2024-09-24 15:15阅读:

Thinkphp事件机制两种实现方式详解


根据官方文档thinkphp6的事件机制涉及三个类:事件类(event)、监听类(listener)、订阅类(subscribe)。官方的文档以及官方的视频都没把事件机制讲清楚。下面我以单应用为例用另一种方式给大家总结一下
+
事件机制的实现有两种途径:通过监听、通过订阅

一、通过监听

1、创建监听类:在命令行模式下进入框架根目录执行
php think make:listener <自定义的类名>
例如:
php think make:listener UserListener
执行之后将在<框架根目录>\app\listener\下生成UserListener这个类。
2、配置监听:在<框架根目录>\app\event.php这个文件的listen数组中配置UserListener这个类,如下:
'listen' => [
'testEvent' => ['app\listener\UserListener']
],
3、触发监听:在你需要触发监听的地方加入如下代码
1
event('testEvent');

注意:这里的参数testEvent即为事件名称,可随便定义,但必须要与在event.php文件里配置的键名一致。
触发监听时你可以带上第二个参数。通过第二个参数你可以把任何数据传递到UserListener这个类中,也就是handle方法的参数(不明白啥意思的结合下面的完整代码理解)。
4、处理监听逻辑:在UserListener类的handle方法中完成业务逻辑
完整代码如下
Other:一个用来测试的类
1
2
3
4
5
6
7
8
9


我的更多文章

下载客户端阅读体验更佳

APP专享