Event事件的整理

发布时间:2023年12月17日

很久没去看thinkphp框架文档,结果看到有更新到8.0版本。

好奇去下载框架运行,

好在我电脑都有运行的PHP版本是8.1多,拿捏这个新出的think

今天摸索event的这个事件功能,

文档的介绍是这样:

?(省略几十字),

重要内容:

????????我们通常会遇到用户注册或者登录后需要做一系列操作,通过事件系统可以做到不侵入原有代码完成登录的操作扩展,降低系统的耦合性的同时,也降低了BUG的可能性。

所以,也就是说,我们可以在正常写入或者返回的过程中不变的情况下,

可以用这个event事件来扩展其它,

比如,

  1. 判断登陆的token是否过期,
  2. 判断优惠券是否过期,进行更新
  3. 判断/更新....等等业务的范畴

安装的步骤我就不说了,再次省略几百字,

首先在业务层代码,比如控制器Index下的login方法下,

完成处加入?

      \event('app\event\UserLogin',$str1);

引入:

use think\facade\Event;

同时利用工具创建 定义事件

php think make:event UserLogin

截图之处,文档都有,可根据自身需求改变。

同时利用工具创建监听

php think make:listener UserLogin

?我是将监听传输的数据进行判断,目前先进行打印。

绑定监听和定义的事件

<?php
// 事件定义文件
return [
    'bind'      => [
        'UserLogin'=>'app\event\UserLogin'
    ],

    'listen'    => [
        'AppInit'  => [],
        'HttpRun'  => [],
        'HttpEnd'  => [],
        'LogLevel' => [],
        'LogWrite' => [],
        'UserLogin'=> ['app\listener\UserLogin']
    ],

    'subscribe' => [
    ],
];

最后运行结果

文章来源:https://blog.csdn.net/weixin_40428902/article/details/134975454
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。