xervice / event-rabbitmq
2.2.0
2019-08-22 13:44 UTC
Requires
- php: >=7.1.0
- xervice/core: ^4.0.0
- xervice/data-provider: ^2.0.0
- xervice/event: ^3.0.0
- xervice/rabbitmq: ^3.0.0|^4.0.0
Requires (Dev)
README
Installation
composer require xervice/event-rabbitmq
Configuration
To use RabbitMQ as event handler, you have to overwrite the event factory.
EventFactory
<?php namespace App\Event; use Xervice\Event\EventFactory as XerviceEventFactory; use Xervice\EventRabbitMq\Business\EventProvider\RabbitMqEventProvider; use Xervice\Event\Business\Provider\EventProviderInterface; class EventFactory extends XerviceEventFactory { /** * @return \Xervice\Event\Business\Provider\EventProviderInterface */ public function createEventProvider(): EventProviderInterface { return new RabbitMqEventProvider(); } }
Also you have to overwrite the RabbitMQDependencyProvider to define the Queue, Exchange and Listener to RabbitMQ.
RabbitMQDependencyProvider
<?php namespace App\RabbitMQ; use Xervice\RabbitMQ\RabbitMQDependencyProvider as XerviceRabbitMQDependencyProvider; use Xervice\EventRabbitMq\Business\Listener\QueueListener; use Xervice\EventRabbitMq\Business\Queue\EventQueue; use Xervice\EventRabbitMq\Business\Queue\EventExchange; class RabbitMQDependencyProvider extends XerviceRabbitMQDependencyProvider { /** * @return array */ protected function getListener() { return [ new QueueListener() ]; } /** * @return \Xervice\RabbitMQ\Queue\QueueInterface[] */ protected function getQueues() { return [ new EventQueue() ]; } /** * @return \Xervice\RabbitMQ\Exchange\ExchangeInterface[] */ protected function getExchanges() { return [ new EventExchange() ]; } }
Using
There is no special using. After the configuration, all Events should be provided to RabbitMQ.