edfa3ly-backend/rabbitmq-bundle-consumer-generator

This is an extension for php-amqplib/rabbitmq-bundle for dynamically generating consumers

1.0.3 2019-04-14 08:52 UTC

This package is auto-updated.

Last update: 2024-04-14 21:13:08 UTC


README

Software License Latest Stable Version Total Downloads

Install

Via Composer

$ composer require edfa3ly-backend/rabbitmq-bundle-consumer-generator

Description

  • An extension bundle for php-amqplib/rabbitmq-bundle that generates consumers dynamically over code , converts them to their yaml representation and writes them over your specified path.

Usage

  • Inject the GeneratorWrapper in a service of your own creation and use its methods
class ServiceExample
{  

    /** @var GeneratorWrapper $wrapper */
    protected $wrapper;
   
   /**
    * ServiceExample constructor.
    *
    * @param GeneratorWrapper $wrapper
    */
   public function __construct(
       GeneratorWrapper $wrapper
   ) {
       $this->wrapper         = $wrapper;
   }
   
   /**
    * @throws Exception
    */
   public function createConsumers()
   {
       $consumer = new ConsumerSkeleton() ;
       $consumer->setName('the name of your consumer');
       $consumer->setQueueRoutingKeys(['array of routing keys of your consumer']);
       $consumer->setExchangeType('fanout , direct , topic or headers');
       $consumer->setExchangeName('the name of your consumer's exchange');
       $consumer->setQueueName('Queue name');
       $consumer->setCallback('\path\to\your\consumer\callback::class');
       $consumer->setAmqpConsumerType('consumers or batch_consumers');
       
       $this->wrapper->writeConsumers( [$consumer], 'relative\path\to\your\consumers\yaml');
   }
}

Console

Now you can generate consumers through command just run php bin\console consumer:generate and answer the prompted questions .

Security

If you discover any security related issues, please email omarfawzi96@gmail.com instead of using the issue tracker.

License

The MIT License (MIT). Please see License File for more information.