silpo-tech / message-bus-bundle
Message bus bundle for Symfony
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=8.1
- ext-amqp: *
- enqueue/amqp-lib: ^0.10.9
- enqueue/enqueue-bundle: ^0.10
- php-amqplib/php-amqplib: ^3.5.1
- silpo-tech/mapper-bundle: ^1.0
- symfony/console: ^7.0
- symfony/doctrine-bridge: ^7.3
- symfony/event-dispatcher: ^7.0
- symfony/expression-language: ^7.0
- symfony/serializer: ^7.0
- symfony/uid: ^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- monolog/monolog: ^2.0|^3.0
- php-solution/sf-functional-test: ^6.0
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11.4
- sentry/sentry: ^3.0|^4.0
- silpo-tech/lib-test-utilities: ^1.0
- symfony/framework-bundle: ^7.0
- symfony/validator: ^7.0
- symfony/yaml: ^7.0
Suggests
- ext-zlib: to use message compression
README
Development
Run tests
docker compose -p message-bus -f docker-compose.test.yml up -d --build --remove-orphans && \ docker compose -p message-bus -f docker-compose.yml exec -T api /usr/local/bin/composer install --working-dir=/var/www/project -o --no-interaction --ignore-platform-reqs && \ docker compose -p message-bus -f docker-compose.yml exec -T api /usr/local/bin/composer test:run --working-dir=/var/www/project
Installation
Require the bundle and its dependencies with composer:
$ composer require silpo-tech/message-bus-bundle
Register the bundle:
// project/config/bundles.php return [ MessageBusBundle\MessageBusBundle::class => ['all' => true], ];
Add tags to batch processor to tell application where to look for batch processors
MessageBusBundle\EnqueueProcessor\Batch\BatchProcessorInterface: tags: - 'enqueue.transport.processor' - name: !php/const MessageBusBundle\EnqueueProcessor\Batch\AbstractBatchProcessor::BATCH_PROCESSOR_TAG indexed_by: key
Start consuming:
./bin/console enqueue:consume --setup-broker -vvv
How to enable messages compression:
message_bus: default_encoder: gzip #available: null, gzip, zlib, deflate
and use MessageBusBundle\Producer\EncoderProducerInterface in your project*. Such service is not available by default.
- Do not forget to enable zlib extension at PHP.