xervice/事件

3.0.0 2018-08-26 19:24 UTC

This package is auto-updated.

Last update: 2024-09-29 04:49:45 UTC


README

Build Status Scrutinizer Code Quality Code Coverage

安装

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);