xervice/event-rabbitmq

2.2.0 2019-08-22 13:44 UTC

This package is auto-updated.

Last update: 2024-09-23 01:11:05 UTC


README

Build Status Scrutinizer Code Quality Code Coverage

安装

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。