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
安装
composer require xervice/event-rabbitmq
配置
要将RabbitMQ用作事件处理器,您必须重写事件工厂。
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(); } }
您还必须重写RabbitMQDependencyProvider以定义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() ]; } }
使用
没有特殊的用法。配置完成后,所有事件应提供给RabbitMQ。