xervice / 事件
3.0.0
2018-08-26 19:24 UTC
Requires
- php: >=7.1.0
- xervice/core: ^4.0.0
- xervice/data-provider: ^2.0.0
- xervice/kernel: ^2.0.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-29 04:49:45 UTC
README
安装
composer require xervice/event
配置
您可以在不配置它们的情况下触发事件。但是,您必须定义监听器以处理触发的事件。为此,您必须在 EventDependencyProvider 中定义它们。
<?php namespace App\Event; use Xervice\Event\EventDependencyProvider as XerviceEventDependencyProvider; use XerviceTest\Event\Listener\TestListener; class EventDependencyProvider extends XerviceEventDependencyProvider { protected function getListener(): array { return [ 'test' => [ TestListener::class //implemente EventListenerInterface ] ]; } }
事件提供者向目标系统提供新事件。在 DefaultEventProvider 中,事件直接路由到 ListenerProvider。如果您想更改 DefaultEventProvider,您可以在 EventFactory 的 createEventProvider 方法中覆盖它。
/** * @return \Xervice\Event\Business\Provider\EventProviderInterface */ public function createEventProvider(): EventProviderInterface { return new DefaultEventProvider( $this->createListenerProvider() ); }
监听器提供者向监听器提供事件。
使用
您可以通过事件外观触发新事件。
$newEventContent = new OwnDataProvider(); // DataProviderInterface $newEventContent->setData('MyTest'); $event = new EventDataProvider(); $event ->setName('MY_EVENT_NAME') ->setMessage($newEvent); $eventFacade->fireEvent($event);