• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Minor【PHP框架】5.事件

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

框架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 App\Event;

use Minor\Event\Event;

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 = [
    'App\Event\DemoEvent'    =>    [
        'App\Listener\DemoListener' => 'handle',
    ],
];

  5.1.2 触发事件

  Minor提供了一个事件管理类:Minor\Event\EventManger,通过调用该类的静态方法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的监听器为App\Listener\DemoListener的handle方法,可以看一下这个类的实现:

<?php

namespace App\Listener;

use App\Event\DemoEvent;
use Minor\Event\Listener;

class DemoListener extends Listener
{
    public function handle(DemoEvent $event)
    {
        echo '[DemoListener] handle the event:[' . $event->getName() .'] success!<br/><br/>';
    }
}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP使用array_intersect()函数求数组交集发布时间:2022-07-10
下一篇:
PHP中定义常量的几种方式与区别发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap