• Minor【 PHP框架】5.事件


    框架Github地址:github.com/Orlion/Minor

    (如果觉得还不错给个star哦(^-^)V)

    框架作者: Orlion

    知乎:https://www.zhihu.com/people/orlion

    Github: https://github.com/Orlion

    5.1 事件Event

      Minor的 Event 类提供一个简单的观察者实现,允许您在应用程序里订阅与监听事件。

      5.1.1 订阅事件

      首先创建一个事件类:

    <?php
    
    namespace AppEvent;
    
    use MinorEventEvent;
    
    class DemoEvent extends Event
    {
        private $name;
    
        public function __construct($name)
        {
            $this->name = $name;
        }
    
        public function setName($name)
        {
            $this->name = $name;
        }
    
        public function getName()
        {
            return $this->name;
        }
    }

      然后在配置文件中注册这个事件:

    <?php
    return $events = [
        'AppEventDemoEvent'    =>    [
            'AppListenerDemoListener' => 'handle',
        ],
    ];

      5.1.2 触发事件

      Minor提供了一个事件管理类:MinorEventEventManger,通过调用该类的静态方法fire:EventManager::fire($event)就可以触发这个事件,例:

    class FooController extends Controller
    {
        public function bar($productName)
        {
            $event = new DemoEvent('DemoEvent');
            EventManager::fire($event);
            ...
        }
    }

    5.2 监听器

      当触发事件后事件管理器EventManager就会通过配置文件去触发监听器的制定方法。在5.1.1配置文件中我们配置了DemoEvent的监听器为AppListenerDemoListener的handle方法,可以看一下这个类的实现:

    <?php
    
    namespace AppListener;
    
    use AppEventDemoEvent;
    use MinorEventListener;
    
    class DemoListener extends Listener
    {
        public function handle(DemoEvent $event)
        {
            echo '[DemoListener] handle the event:[' . $event->getName() .'] success!<br/><br/>';
        }
    }
  • 相关阅读:
    PDB文件详解
    C++模板常用功能讲解
    Windows下多线程编程(二)
    关于静态库中使用全局变量可能导致的问题
    js中的函数
    js中字符串的加密base64
    列表推导式
    函数和方法的区别
    xshell连不上虚拟机
    网络编程,并行,并发和协程
  • 原文地址:https://www.cnblogs.com/orlion/p/5595965.html
Copyright © 2020-2023  润新知