Via Composer
$ composer require edfa3ly-backend/rabbitmq-bundle-consumer-generator
- 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.
- 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');
}
}
Now you can generate consumers through command just run php bin\console consumer:generate
and answer the prompted questions .
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.