knplabs/rad-domain-event

此包已被废弃,不再维护。没有建议的替代包。

提供 RAD 域事件组件

v2.1.1 2018-08-23 15:19 UTC

This package is auto-updated.

Last update: 2022-09-23 13:37:14 UTC


README

不幸的是,我们决定不再维护此项目 anymore (查看原因)。如果您想将其他包作为此包的替代品,请发送电子邮件至 hello@knplabs.com

Knp Rad Domain Event

Build Status Scrutinizer Code Quality Latest Stable Version Total Downloads Latest Unstable Version License

Doctrine2 的轻量级域事件模式实现。

官方维护者

安装

使用 composer

$ composer require knplabs/rad-domain-event

如果您正在使用 Symfony,您可以更新您的 app/AppKernel.php 文件

public function registerBundles()
{
    $bundles = array(
        // bundles here ...
        new Knp\Rad\DomainEvent\Bundle\DomainEventBundle();
    );
}

使用方法

设置您的实体

首先,确保您的实体实现了 Provider 接口并使用了 ProviderTrait

use Knp\Rad\DomainEvent;

class MyEntity implements DomainEvent\Provider
{
    use DomainEvent\ProviderTrait;
}

触发事件

通过实体的 raise 方法触发任何事件。它将被转换为一个 Knp\Rad\DomainEvent\Event 对象,并在实体被刷新后分发。

use Knp\Rad\DomainEvent;

class MyEntity implements DomainEvent\Provider
{
    // ...
    public function myFunction($arg) {
        // your function behavior
        $this->raise('myEventName', ['anyKey' => $anyValue]);
    }
}

监听此事件

use Knp\Rad\DomainEvent\Event;

class MyListener
{
    public function onMyEventName(Event $event) {
        // your function behavior     
    }
}

然后,当然,注册您的监听器。

app.event_listener.my_event_listener:
    class: App\EventListener\MyEventListener
    tags:
        - { name: kernel.event_listener, event: myEventName, method: 'onMyEventName' }