阅读 264

thinkphp6事件监听和触发多个事件

 

thinkphp6事件订阅,监听多个事件

    • 创建一个事件类
    • 创建一个监听类
    • 修改配置文件确定触发事件

 

创建一个事件类

 php think make:event User

php

namespace app\event;

class User
{
    public function __construct()
    {
        echo
我是用户的登陆事件构造函数
; } public function login_event() { echo ‘我是login_event
; } }

 

 

创建一个监听类

php think make:listener User 

 

php

namespace app\listener;

class User
{
    //依赖注入的方法
    public function handle(\app\event\User $event)
    {
        echo ‘listener监听得到:‘ . $event->login_event() . ‘
; } }

控制器中调用监听事件并触发

use think\facade\Event;


    public function hellolisten($name = ‘ThinkPHP6‘)
    {

        echo
hellolisten=‘ . $name; //监听类 Event::listen(‘UserListener‘,‘app\listener\User‘); //也可以写到配置文件 event.php 的listen 数组 //触发监听事件 Event::trigger(‘UserListener‘); }

修改配置文件确定触发事件

修改event.php 配置文件,增加监听事件

创建两个监听类,如下图:

 

UserLogout.php

php

namespace app\listener;

class UserLogout
{
    public function handle()
    {
        echo ‘UserLogout监听‘;
    }
}

 

UserLogin.php

php

namespace app\listener;

class UserLogin
{
    public function handle()
    {
        echo ‘UserLogin监听‘;
    }
}

 

 

确定触发事件的地方,这里为index控制器hellolisten方法

    public function hellolisten($name = ‘ThinkPHP6‘)
    {
        echo "开始位置
"; //直接使用事件类触发 Event::trigger(‘UserLogin‘); Event::trigger(‘UserLogout‘); echo "
结束位置
"; }

 

 

 

 

 

转 : https://blog.csdn.net/guo_qiangqiang/article/details/114789465

参考 : 

https://www.kancloud.cn/manual/thinkphp6_0/1037492

https://www.kancloud.cn/cyuemcz/xiaobai/1059791

原文:https://www.cnblogs.com/fps2tao/p/15153445.html

文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐