8000 Relax Messenger config and fix some bugs · symfony/symfony@0a57dc6 · GitHub
[go: up one dir, main page]

Skip to content

Commit 0a57dc6

Browse files
committed
Relax Messenger config and fix some bugs
1 parent 00ca74e commit 0a57dc6

16 files changed

+29
-6
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1010,7 +1010,7 @@ function ($a) {
10101010
->end()
10111011
->end()
10121012
->arrayNode('serializer')
1013-
->canBeDisabled()
1013+
->{!class_exists(FullStack::class) && class_exists(Serializer::class) ? 'canBeDisabled' : 'canBeEnabled'}()
10141014
->addDefaultsIfNotSet()
10151015
->children()
10161016
->scalarNode('format')->defaultValue('json')->end()

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1449,15 +1449,18 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder
14491449
$loader->load('messenger.xml');
14501450

14511451
if ($this->isConfigEnabled($container, $config['serializer'])) {
1452-
if (count($config['adapters']) > 0 && !$this->isConfigEnabled($container, $serializerConfig)) {
1453-
throw new LogicException('Using the default encoder/decoder, Symfony Messenger requires the Serializer. Enable it or install it by running "composer require symfony/serializer-pack".');
1452+
if (!$this->isConfigEnabled($container, $serializerConfig)) {
1453+
throw new LogicException('The default Messenger serializer cannot be enabled as the Serializer support is not enabled.');
14541454
}
14551455

14561456
$container->getDefinition('messenger.transport.serializer')
14571457
->replaceArgument(1, $config['serializer']['format'])
14581458
->replaceArgument(2, $config['serializer']['context']);
14591459
} else {
14601460
$container->removeDefinition('messenger.transport.serializer');
1461+
if ('messenger.transport.serializer' === $config['encoder'] || 'messenger.transport.serializer' === $config['decoder']) {
1462+
$container->removeDefinition('messenger.adapter.amqp.factory');
1463+
}
14611464
}
14621465

14631466
$container->setAlias('messenger.transport.encoder', $config['encoder']);

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ class_exists(SemaphoreStore::class) && SemaphoreStore::isSupported() ? 'semaphor
256256
'routing' => array(),
257257
'adapters' => array(),
258258
'serializer' => array(
259-
'enabled' => true,
259+
'enabled' => !class_exists(FullStack::class),
260260
'format' => 'json',
261261
'context' => array(),
262262
),

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
$container->loadFromExtension('framework', array(
77
'messenger' => array(
8+
'serializer' => false,
89
'routing' => array(
910
FooMessage::class => array('sender.bar', 'sender.biz'),
1011
BarMessage::class => 'sender.foo',

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_adapter.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
$container->loadFromExtension('framework', array(
44
'serializer' => true,
55
'messenger' => array(
6+
'serializer' => true,
67
'adapters' => array(
78
'default' => 'amqp://localhost/%2f/messages',
89
'customised' => array(

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_transport.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?php
22

33
$container->loadFromExtension('framework', array(
4+
'serializer' => true,
45
'messenger' => array(
56
'serializer' => array(
67
'format' => 'csv',

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/serializer_disabled.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,7 @@
44
'serializer' => array(
55
'enabled' => false,
66
),
7+
'messenger' => array(
8+
'serializer' => false,
9+
),
710
));

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
<framework:config>
99
<framework:messenger>
10+
<framework:serializer enabled="false" />
1011
<framework:routing message-class="Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\FooMessage">
1112
<framework:sender service="sender.bar" />
1213
<framework:sender service="sender.biz" />

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_adapter.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
<framework:config>
99
<framework:serializer enabled="true" />
1010
<framework:messenger>
11+
<framework:serializer enabled="true" />
1112
<framework:adapter name="default" dsn="amqp://localhost/%2f/messages" />
1213
<framework:adapter name="customised" dsn="amqp://localhost/%2f/messages?exchange_name=exchange_name">
1314
<framework:options>

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_transport.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
http://symfony.com/schema/dic/symfony http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
77

88
<framework:config>
9+
<framework:serializer enabled="true" />
910
<framework:messenger>
1011
<framework:serializer format="csv">
1112
<framework:context>

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/serializer_disabled.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,8 @@
77

88
<framework:config>
99
<framework:serializer enabled="false" />
10+
<framework:messenger>
11+
<framework:serializer enabled="false" />
12+
</framework:messenger>
1013
</framework:config>
1114
</container>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
framework:
22
messenger:
3+
serializer: false
34
routing:
45
'Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\FooMessage': ['sender.bar', 'sender.biz']
56
'Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\BarMessage': 'sender.foo'

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_adapter.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
framework:
22
serializer: true
33
messenger:
4+
serializer: true
45
adapters:
56
default: 'amqp://localhost/%2f/messages'
67
customised:

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/messenger_transport.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
framework:
2+
serializer: true
23
messenger:
34
serializer:
45
format: csv
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
framework:
22
serializer:
33
enabled: false
4+
messenger:
5+
serializer: false

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,8 @@ public function testWebLink()
524524
public function testMessenger()
525525
{
526526
$container = $this->createContainerFromFile('messenger');
527-
$this->assertTrue($container->has('message_bus'));
527+
$this->assertTrue($container->hasAlias('message_bus'));
528+
$this->assertFalse($container->hasDefinition('messenger.adapter.amqp.factory'));
528529
}
529530

530531
public function testMessengerAdapter()
@@ -554,11 +555,13 @@ public function testMessengerAdapter()
554555
$this->assertCount(2, $receiverArguments);
555556
$this->assertSame('amqp://localhost/%2f/messages?exchange_name=exchange_name', $receiverArguments[0]);
556557
$this->assertSame(array('queue' => array('name' => 'Queue')), $receiverArguments[1]);
558+
559+
$this->assertTrue($container->hasDefinition('messenger.adapter.amqp.factory'));
557560
}
558561

559562
/**
560563
* @expectedException \Symfony\Component\DependencyInjection\Exception\LogicException
561-
* @expectedExceptionMessage Using the default encoder/decoder, Symfony Messenger requires the Serializer. Enable it or install it by running "composer require symfony/serializer-pack".
564+
* @expectedExceptionMessage The default Messenger serializer cannot be enabled as the Serializer support is not enabled.
562565
*/
563566
public function testMessengerTransportConfigurationWithoutSerializer()
564567
{

0 commit comments

Comments
 (0)
0