knplabs / rad-domain-event
此包已被废弃,不再维护。没有建议的替代包。
提供 RAD 域事件组件
v2.1.1
2018-08-23 15:19 UTC
Requires
- php: ~7.0
- doctrine/orm: ^2.5
- symfony/config: ^2.6 || ~3.0 || ~4.0
- symfony/dependency-injection: ^2.6 || ~3.0 || ~4.0
- symfony/http-kernel: ^2.6 || ~3.0 || ~4.0
Requires (Dev)
- phpspec/phpspec: ^2.4
This package is auto-updated.
Last update: 2022-09-23 13:37:14 UTC
README
不幸的是,我们决定不再维护此项目 anymore (查看原因)。如果您想将其他包作为此包的替代品,请发送电子邮件至 hello@knplabs.com。
Knp Rad Domain Event
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' }