minetro/events

此软件包已被废弃,不再维护。作者建议使用contributte/dummy-events软件包。

Nette的简单事件

2.0.0 2018-06-25 21:59 UTC

This package is auto-updated.

Last update: 2021-06-28 10:57:09 UTC


README

68747470733a2f2f62616467656e2e6e65742f62616467652f737570706f72742f6769747465722f6379616e 68747470733a2f2f62616467656e2e6e65742f62616467652f737570706f72742f666f72756d2f79656c6c6f77 68747470733a2f2f62616467656e2e6e65742f62616467652f73706f6e736f722f646f6e6174696f6e732f463936383534

网站 🚀 contributte.org | 联系 👨🏻‍💻 f3l1x.io | Twitter 🐦 @contributte

免责声明

Composer contributte/dummy-events
版本
PHP
许可证

文档

使用方法

注册扩展

在您的配置文件中注册(例如 config.neon)。

extensions:
    events: Contributte\DummyEvents\DI\EventsExtension

注册事件

在容器编译时 - EventsExtension 收集实现 EventsSubscriber 的所有服务并调用它们的 onEvents($em) 方法。

use Contributte\DummyEvents\EventsSubscriber;
use Contributte\DummyEvents\EventsManager;

class TestService implements EventsSubscriber 
{
    /**
     * @param EventsManager $em
     */
    public function onEvents(EventsManager $em) {
        $em->on('order.update', function($state) {
            // Some logic..
        });
    }
}

注册延迟事件

使用前缀 event 将名称标签作为事件名称。

services:
    {class: TestService, tags: [event.order.update]}

或者使用具有 events 键名的标签数组。

services:
    {class: TestService, tags: [events: [order.update]]}

这防止了使用其他标签。

如果 EventsSubscriber 注册了更多事件并且也被延迟注册(通过neon中的标签),则实现的 onEvents(EventsManager $em) 方法仅被调用 一次

use Contributte\DummyEvents\EventsSubscriber;
use Contributte\DummyEvents\EventsManager;

class TestSubscriber implements EventsSubscriber 
{
    
    public function onEvents(EventsManager $em) {
        $em->on('order.create', function($state) {
            // Some logic..
        });
        
        $em->on('order.update', function($state) {
            // Some logic..
        });
        
        $em->on('order.delete', function($state) {
            // Some logic..
        });
    }
}

触发事件

EventsManager 注入到您的类中。

use Contributte\DummyEvents\EventsManager;

/** @var EventsManager @inject **/
public $em;

public function save() {
    // Some logic..
    
    // Fire order update events
    $this->em->trigger('order.update', $order->state);
}

开发

此软件包由以下作者维护。

538058?v=3&s=80

请考虑支持 contributte 开发团队。同时感谢您使用此软件包。