Skip to content

Commit 6bd77ae

Browse files
authored
Merge pull request #371 from ikwattro/alias
Configurable producer service alias
2 parents 737da78 + f87679e commit 6bd77ae

File tree

5 files changed

+34
-1
lines changed

5 files changed

+34
-1
lines changed

DependencyInjection/Configuration.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ protected function addProducers(ArrayNodeDefinition $node)
9090
->scalarNode('auto_setup_fabric')->defaultTrue()->end()
9191
->scalarNode('class')->defaultValue('%old_sound_rabbit_mq.producer.class%')->end()
9292
->scalarNode('enable_logger')->defaultFalse()->end()
93+
->scalarNode('service_alias')->defaultValue(null)->end()
9394
->end()
9495
->end()
9596
->end()

DependencyInjection/OldSoundRabbitMqExtension.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,12 @@ protected function loadProducers()
152152
$this->injectLogger($definition);
153153
}
154154

155-
$this->container->setDefinition(sprintf('old_sound_rabbit_mq.%s_producer', $key), $definition);
155+
$producerServiceName = sprintf('old_sound_rabbit_mq.%s_producer', $key);
156+
157+
$this->container->setDefinition($producerServiceName, $definition);
158+
if (null !== $producer['service_alias']) {
159+
$this->container->setAlias($producer['service_alias'], $producerServiceName);
160+
}
156161
}
157162
} else {
158163
foreach ($this->config['producers'] as $key => $producer) {

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ old_sound_rabbit_mq:
117117
upload_picture:
118118
connection: default
119119
exchange_options: {name: 'upload-picture', type: direct}
120+
service_alias: my_app_service # no alias by default
120121
consumers:
121122
upload_picture:
122123
connection: default

Tests/DependencyInjection/Fixtures/test.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,21 @@ old_sound_rabbit_mq:
6262
arguments: null
6363
ticket: null
6464

65+
foo_producer_aliased:
66+
class: My\Foo\Producer
67+
connection: foo_connection
68+
exchange_options:
69+
name: foo_exchange
70+
type: direct
71+
passive: true
72+
durable: false
73+
auto_delete: true
74+
internal: true
75+
nowait: true
76+
arguments: null
77+
ticket: null
78+
service_alias: foo_producer_alias
79+
6580

6681
default_producer:
6782
exchange_options:

Tests/DependencyInjection/OldSoundRabbitMqExtensionTest.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,17 @@ public function testFooProducerDefinition()
264264
$this->assertEquals('My\Foo\Producer', $definition->getClass());
265265
}
266266

267+
/**
268+
* @group alias
269+
*/
270+
public function testAliasedFooProducerDefinition()
271+
{
272+
$container = $this->getContainer('test.yml');
273+
274+
$this->assertTrue($container->has('old_sound_rabbit_mq.foo_producer_producer'));
275+
$this->assertTrue($container->has('foo_producer_alias'));
276+
}
277+
267278
public function testDefaultProducerDefinition()
268279
{
269280
$container = $this->getContainer('test.yml');

0 commit comments

Comments
 (0)