Skip to content

Commit ed46b62

Browse files
committed
[client] Move client config to the factory.
1 parent 85e1e15 commit ed46b62

File tree

5 files changed

+27
-17
lines changed

5 files changed

+27
-17
lines changed

pkg/enqueue-bundle/DependencyInjection/Configuration.php

+5-11
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Enqueue\Bundle\DependencyInjection;
44

5-
use Enqueue\Client\RouterProcessor;
5+
use Enqueue\Symfony\Client\DependencyInjection\ClientFactory;
66
use Enqueue\Symfony\DependencyInjection\TransportFactory;
77
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
88
use Symfony\Component\Config\Definition\ConfigurationInterface;
@@ -34,17 +34,11 @@ public function getConfigTreeBuilder(): TreeBuilder
3434
$consumptionNode = $rootNode->children()->arrayNode('consumption');
3535
$transportFactory->addQueueConsumerConfiguration($consumptionNode);
3636

37+
$clientFactory = new ClientFactory('default');
38+
$clientNode = $rootNode->children()->arrayNode('client');
39+
$clientFactory->addClientConfiguration($clientNode, $this->debug);
40+
3741
$rootNode->children()
38-
->arrayNode('client')->children()
39-
->booleanNode('traceable_producer')->defaultValue($this->debug)->end()
40-
->scalarNode('prefix')->defaultValue('enqueue')->end()
41-
->scalarNode('app_name')->defaultValue('app')->end()
42-
->scalarNode('router_topic')->defaultValue('default')->cannotBeEmpty()->end()
43-
->scalarNode('router_queue')->defaultValue('default')->cannotBeEmpty()->end()
44-
->scalarNode('router_processor')->defaultValue(RouterProcessor::class)->end()
45-
->scalarNode('default_processor_queue')->defaultValue('default')->cannotBeEmpty()->end()
46-
->integerNode('redelivered_delay_time')->min(0)->defaultValue(0)->end()
47-
->end()->end()
4842
->booleanNode('job')->defaultFalse()->end()
4943
->arrayNode('async_events')
5044
->addDefaultsIfNotSet()

pkg/enqueue-bundle/DependencyInjection/EnqueueExtension.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use Enqueue\Client\CommandSubscriberInterface;
88
use Enqueue\Client\TopicSubscriberInterface;
99
use Enqueue\JobQueue\Job;
10-
use Enqueue\Symfony\DependencyInjection\ClientFactory;
10+
use Enqueue\Symfony\Client\DependencyInjection\ClientFactory;
1111
use Enqueue\Symfony\DependencyInjection\TransportFactory;
1212
use Symfony\Component\Config\FileLocator;
1313
use Symfony\Component\Config\Resource\FileResource;

pkg/enqueue-bundle/Tests/Unit/DependencyInjection/ConfigurationTest.php

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
namespace Enqueue\Bundle\Tests\Unit\DependencyInjection;
44

55
use Enqueue\Bundle\DependencyInjection\Configuration;
6-
use Enqueue\Client\RouterProcessor;
76
use Enqueue\Test\ClassExtensionTrait;
87
use PHPUnit\Framework\TestCase;
98
use Symfony\Component\Config\Definition\ConfigurationInterface;
@@ -94,7 +93,7 @@ public function testShouldSetDefaultConfigurationForClient()
9493
'client' => [
9594
'prefix' => 'enqueue',
9695
'app_name' => 'app',
97-
'router_processor' => RouterProcessor::class,
96+
'router_processor' => 'enqueue.client.default.router_processor',
9897
'router_topic' => 'default',
9998
'router_queue' => 'default',
10099
'default_processor_queue' => 'default',

pkg/enqueue/Symfony/DependencyInjection/ClientFactory.php renamed to pkg/enqueue/Symfony/Client/DependencyInjection/ClientFactory.php

+18-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace Enqueue\Symfony\DependencyInjection;
3+
namespace Enqueue\Symfony\Client\DependencyInjection;
44

55
use Enqueue\Client\ChainExtension;
66
use Enqueue\Client\Config;
@@ -21,7 +21,9 @@
2121
use Enqueue\Consumption\QueueConsumer;
2222
use Enqueue\Rpc\RpcFactory;
2323
use Enqueue\Symfony\ContainerProcessorRegistry;
24+
use Enqueue\Symfony\DependencyInjection\FormatClientNameTrait;
2425
use Interop\Queue\Context;
26+
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
2527
use Symfony\Component\DependencyInjection\ContainerBuilder;
2628
use Symfony\Component\DependencyInjection\ContainerInterface;
2729
use Symfony\Component\DependencyInjection\Reference;
@@ -47,6 +49,21 @@ public function __construct(string $name)
4749
$this->name = $name;
4850
}
4951

52+
public function addClientConfiguration(ArrayNodeDefinition $builder, bool $debug): void
53+
{
54+
$builder->children()
55+
->booleanNode('traceable_producer')->defaultValue($debug)->end()
56+
->scalarNode('prefix')->defaultValue('enqueue')->end()
57+
->scalarNode('app_name')->defaultValue('app')->end()
58+
->scalarNode('router_topic')->defaultValue('default')->cannotBeEmpty()->end()
59+
->scalarNode('router_queue')->defaultValue('default')->cannotBeEmpty()->end()
60+
->scalarNode('router_processor')->defaultValue($this->format('router_processor'))->end()
61+
->scalarNode('default_processor_queue')->defaultValue('default')->cannotBeEmpty()->end()
62+
->integerNode('redelivered_delay_time')->min(0)->defaultValue(0)->end()
63+
->end()->end()
64+
;
65+
}
66+
5067
public function build(ContainerBuilder $container, array $config): void
5168
{
5269
$container->register($this->format('context'), Context::class)

pkg/enqueue/Tests/Symfony/DependencyInjection/ClientFactoryTest.php renamed to pkg/enqueue/Tests/Symfony/Client/DependencyInjection/ClientFactoryTest.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?php
22

3-
namespace Enqueue\Tests\Symfony\DependencyInjection;
3+
namespace Enqueue\Tests\Symfony\Client\DependencyInjection;
44

5-
use Enqueue\Symfony\DependencyInjection\ClientFactory;
5+
use Enqueue\Symfony\Client\DependencyInjection\ClientFactory;
66
use Enqueue\Test\ClassExtensionTrait;
77
use PHPUnit\Framework\TestCase;
88
use Symfony\Component\DependencyInjection\ContainerBuilder;

0 commit comments

Comments
 (0)