zoukankan      html  css  js  c++  java
  • thinkphp6事件监听和触发多个事件

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

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

    创建一个事件类

     php think make:event User

    <?php
    
    namespace appevent;
    
    class User
    {
        public function __construct()
        {
            echo '<br>我是用户的登陆事件构造函数<br>';
        }
        
        public function login_event()
        {
            echo '我是login_event<br>';
        }
    }

    创建一个监听类

    php think make:listener User 

    <?php
    
    namespace applistener;
    
    class User
    {
        //依赖注入的方法
        public function handle(appeventUser $event)
        {
            echo 'listener监听得到:' . $event->login_event() . '<br>';
        }
    }

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

    use thinkfacadeEvent;
    
    
        public function hellolisten($name = 'ThinkPHP6')
        {
    
            echo '<br>hellolisten=' . $name;
            //监听类
            Event::listen('UserListener','applistenerUser'); //也可以写到配置文件 event.php 的listen 数组
            //触发监听事件
            Event::trigger('UserListener');
    
        }

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

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

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

    UserLogout.php

    <?php
    
    namespace applistener;
    
    class UserLogout
    {
        public function handle()
        {
            echo 'UserLogout监听';
        }
    }

    UserLogin.php

    <?php
    
    namespace applistener;
    
    class UserLogin
    {
        public function handle()
        {
            echo 'UserLogin监听';
        }
    }

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

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

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

    参考 : 

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

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

  • 相关阅读:
    符号表实现(Symbol Table Implementations)
    揭开枚举类的面纱(Unlocking the Enumeration/enum Mystery)
    玩转指针(Playing with Pointers)
    什么是空间复杂度(What is actually Space Complexity ?)
    论困于记忆之物(随笔感言)
    【未有之有】洛依文明相关
    告别
    【未有之有】洛森修炼体系整理
    【未有之有】洛森十三圣人
    复苏
  • 原文地址:https://www.cnblogs.com/fps2tao/p/15153445.html
Copyright © 2011-2022 走看看