gdx / p-service-bus-symfony-bundle
PServiceBus
3.0.0
2025-01-16 14:07 UTC
Requires
- php: >=8.2
- gdx/p-service-bus: ^2.0.3
- symfony/config: ^v7.2.0
- symfony/dependency-injection: ^v7.2.0
- symfony/http-kernel: ^v7.2.2
Requires (Dev)
- doctrine/doctrine-bundle: ^2.13.1
- doctrine/orm: ^3.3.1
- phpunit/phpunit: ^10.5.41
- rector/rector: ^2.0.6
- roave/security-advisories: dev-latest
- symfony/framework-bundle: ^v7.2.2
- vimeo/psalm: ^5.26.1
README
Telegram group: https://t.me/PServiceBus
For library https://gitlab.com/GDXbsv/pservicebus
Symfony: https://packagist.org/packages/gdx/p-service-bus-symfony-bundle
Laravel: https://packagist.org/packages/gdx/p-service-bus-laravel-package
As example for config please look in TestApp folder: https://gitlab.com/GDXbsv/pservicebus-symfony-bundle/-/tree/master/TestApp
Example initialization file config/packages/p-service-bus.php
:
<?php declare(strict_types=1);
use GDXbsv\PServiceBus\Bus\ConsumeBus;
use GDXbsv\PServiceBus\Transport\InMemoryTransport;
use GDXbsv\PServiceBus\Transport\Sns\SnsSqsTransport;
use GDXbsv\PServiceBus\Transport\Sqs\SqsTransport;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use function Symfony\Component\DependencyInjection\Loader\Configurator\inline_service;
use function Symfony\Component\DependencyInjection\Loader\Configurator\service;
return static function (ContainerConfigurator $containerConfigurator): void {
$containerConfigurator->extension(
'p_service_bus',
[
'transports' => [
'memory' => InMemoryTransport::class,
'external' => SnsSqsTransport::class,
'example_name_for_transport' => 'app.service_bus.transport.example_sqs',
'example_name_for_transport2' => 'app.service_bus.transport.example_sqs2',
],
]
);
$s = $containerConfigurator->services();
$s->defaults()
->autowire()
->autoconfigure();
$s->set(InMemoryTransport::class)
->call('setBus', [service(ConsumeBus::class)]);
$s
->set(SnsSqsTransport::class)
->factory([SnsSqsTransport::class, 'ofDsn'])
->arg('$dsnString', '%env(SNS_DSN)%')
->arg('$sqsTransport', inline_service(SqsTransport::class)
->factory([SqsTransport::class, 'ofDsn'])
->arg('$dsnString', '%env(SQS_DSN)%&queue=core_external')
);
$s
->set('app.service_bus.transport.example_sqs')
->class(SqsTransport::class)
->factory([SqsTransport::class, 'ofDsn'])
->arg('$dsnString', '%env(SQS_DSN)%&queue=core_example_name');
$s
->set('app.service_bus.transport.example_sqs2')
->class(SqsTransport::class)
->factory([SqsTransport::class, 'ofDsn'])
->arg('$dsnString', '%env(SQS_DSN)%&queue=core_example_name2');