zoukankan      html  css  js  c++  java
  • 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/>';
        }
    }
  • 相关阅读:
    Python-24-Django(Model Form、Ajax、上传文件、KindEditor)
    P23-Django-model、Form补充 & 序列化
    P22-Django-Session、CSRF、Form、信号
    21-Python-Django进阶补充篇
    Python-Django进阶
    Python-18-Django 基础篇
    17-前端开发之jQuery
    15-前端开发之JavaScript
    14-前端开发之CSS
    14-前端开发之HTML
  • 原文地址:https://www.cnblogs.com/orlion/p/5595965.html
Copyright © 2011-2022 走看看