diff --git a/pkg/enqueue-bundle/DependencyInjection/Configuration.php b/pkg/enqueue-bundle/DependencyInjection/Configuration.php index 153adadc5..3aca17a90 100644 --- a/pkg/enqueue-bundle/DependencyInjection/Configuration.php +++ b/pkg/enqueue-bundle/DependencyInjection/Configuration.php @@ -2,7 +2,7 @@ namespace Enqueue\Bundle\DependencyInjection; -use Enqueue\Client\RouterProcessor; +use Enqueue\Symfony\Client\DependencyInjection\ClientFactory; use Enqueue\Symfony\DependencyInjection\TransportFactory; use Symfony\Component\Config\Definition\Builder\TreeBuilder; use Symfony\Component\Config\Definition\ConfigurationInterface; @@ -34,17 +34,11 @@ public function getConfigTreeBuilder(): TreeBuilder $consumptionNode = $rootNode->children()->arrayNode('consumption'); $transportFactory->addQueueConsumerConfiguration($consumptionNode); + $clientFactory = new ClientFactory('default'); + $clientNode = $rootNode->children()->arrayNode('client'); + $clientFactory->addClientConfiguration($clientNode, $this->debug); + $rootNode->children() - ->arrayNode('client')->children() - ->booleanNode('traceable_producer')->defaultValue($this->debug)->end() - ->scalarNode('prefix')->defaultValue('enqueue')->end() - ->scalarNode('app_name')->defaultValue('app')->end() - ->scalarNode('router_topic')->defaultValue('default')->cannotBeEmpty()->end() - ->scalarNode('router_queue')->defaultValue('default')->cannotBeEmpty()->end() - ->scalarNode('router_processor')->defaultValue(RouterProcessor::class)->end() - ->scalarNode('default_processor_queue')->defaultValue('default')->cannotBeEmpty()->end() - ->integerNode('redelivered_delay_time')->min(0)->defaultValue(0)->end() - ->end()->end() ->booleanNode('job')->defaultFalse()->end() ->arrayNode('async_events') ->addDefaultsIfNotSet() diff --git a/pkg/enqueue-bundle/DependencyInjection/EnqueueExtension.php b/pkg/enqueue-bundle/DependencyInjection/EnqueueExtension.php index 8ad5b39ba..5d39a8e0f 100644 --- a/pkg/enqueue-bundle/DependencyInjection/EnqueueExtension.php +++ b/pkg/enqueue-bundle/DependencyInjection/EnqueueExtension.php @@ -7,7 +7,7 @@ use Enqueue\Client\CommandSubscriberInterface; use Enqueue\Client\TopicSubscriberInterface; use Enqueue\JobQueue\Job; -use Enqueue\Symfony\DependencyInjection\ClientFactory; +use Enqueue\Symfony\Client\DependencyInjection\ClientFactory; use Enqueue\Symfony\DependencyInjection\TransportFactory; use Symfony\Component\Config\FileLocator; use Symfony\Component\Config\Resource\FileResource; diff --git a/pkg/enqueue-bundle/Tests/Unit/DependencyInjection/ConfigurationTest.php b/pkg/enqueue-bundle/Tests/Unit/DependencyInjection/ConfigurationTest.php index 823a2ac13..4fdbd2939 100644 --- a/pkg/enqueue-bundle/Tests/Unit/DependencyInjection/ConfigurationTest.php +++ b/pkg/enqueue-bundle/Tests/Unit/DependencyInjection/ConfigurationTest.php @@ -3,7 +3,6 @@ namespace Enqueue\Bundle\Tests\Unit\DependencyInjection; use Enqueue\Bundle\DependencyInjection\Configuration; -use Enqueue\Client\RouterProcessor; use Enqueue\Test\ClassExtensionTrait; use PHPUnit\Framework\TestCase; use Symfony\Component\Config\Definition\ConfigurationInterface; @@ -94,7 +93,7 @@ public function testShouldSetDefaultConfigurationForClient() 'client' => [ 'prefix' => 'enqueue', 'app_name' => 'app', - 'router_processor' => RouterProcessor::class, + 'router_processor' => 'enqueue.client.default.router_processor', 'router_topic' => 'default', 'router_queue' => 'default', 'default_processor_queue' => 'default', diff --git a/pkg/enqueue/Symfony/DependencyInjection/ClientFactory.php b/pkg/enqueue/Symfony/Client/DependencyInjection/ClientFactory.php similarity index 88% rename from pkg/enqueue/Symfony/DependencyInjection/ClientFactory.php rename to pkg/enqueue/Symfony/Client/DependencyInjection/ClientFactory.php index fd5a36332..e610ad87e 100644 --- a/pkg/enqueue/Symfony/DependencyInjection/ClientFactory.php +++ b/pkg/enqueue/Symfony/Client/DependencyInjection/ClientFactory.php @@ -1,6 +1,6 @@ name = $name; } + public function addClientConfiguration(ArrayNodeDefinition $builder, bool $debug): void + { + $builder->children() + ->booleanNode('traceable_producer')->defaultValue($debug)->end() + ->scalarNode('prefix')->defaultValue('enqueue')->end() + ->scalarNode('app_name')->defaultValue('app')->end() + ->scalarNode('router_topic')->defaultValue('default')->cannotBeEmpty()->end() + ->scalarNode('router_queue')->defaultValue('default')->cannotBeEmpty()->end() + ->scalarNode('router_processor')->defaultValue($this->format('router_processor'))->end() + ->scalarNode('default_processor_queue')->defaultValue('default')->cannotBeEmpty()->end() + ->integerNode('redelivered_delay_time')->min(0)->defaultValue(0)->end() + ->end()->end() + ; + } + public function build(ContainerBuilder $container, array $config): void { $container->register($this->format('context'), Context::class) diff --git a/pkg/enqueue/Tests/Symfony/DependencyInjection/ClientFactoryTest.php b/pkg/enqueue/Tests/Symfony/Client/DependencyInjection/ClientFactoryTest.php similarity index 93% rename from pkg/enqueue/Tests/Symfony/DependencyInjection/ClientFactoryTest.php rename to pkg/enqueue/Tests/Symfony/Client/DependencyInjection/ClientFactoryTest.php index bb4cfe9a4..b87245469 100644 --- a/pkg/enqueue/Tests/Symfony/DependencyInjection/ClientFactoryTest.php +++ b/pkg/enqueue/Tests/Symfony/Client/DependencyInjection/ClientFactoryTest.php @@ -1,8 +1,8 @@