edfa3ly-backend / rabbitmq-bundle-consumer-generator
This is an extension for php-amqplib/rabbitmq-bundle for dynamically generating consumers
Installs: 8
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- illuminate/support: *
- php-amqplib/php-amqplib: ^2.6
- php-amqplib/rabbitmq-bundle: ^1.14
- symfony/console: 4.2.*
- symfony/dependency-injection: 4.2.*
- symfony/framework-bundle: 4.2.*
- symfony/http-kernel: 4.2.*
- symfony/phpunit-bridge: ^4.2
- symfony/yaml: 4.2.*
This package is auto-updated.
Last update: 2024-11-14 22:22:20 UTC
README
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.