10000 Buses comes with default middlewares that can be disabled. · symfony/symfony@8d16cda · GitHub
[go: up one dir, main page]

Skip to content

Commit 8d16cda

Browse files
committed
Buses comes with default middlewares that can be disabled.
1 parent d39604e commit 8d16cda

File tree

8 files changed

+27
-6
lines changed

8 files changed

+27
-6
lines changed

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1055,14 +1055,15 @@ function ($a) {
10551055
->end()
10561056
->scalarNode('default_bus')->defaultValue(null)->end()
10571057
->arrayNode('buses')
1058-
->defaultValue(array('default' => array('middlewares' => $defaultMiddlewares = array('logging', 'route_messages', 'call_message_handler'))))
1058+
->defaultValue(array('default' => array('default_middlewares' => true, 'middlewares' => array())))
10591059
->useAttributeAsKey('name')
10601060
->prototype('array')
10611061
->fixXmlConfig('middleware')
10621062
->addDefaultsIfNotSet()
10631063
->children()
1064+
->booleanNode('default_middlewares')->defaultTrue()->end()
10641065
->arrayNode('middlewares')
1065-
->defaultValue($defaultMiddlewares)
1066+
->defaultValue(array())
10661067
->prototype('scalar')->end()
10671068
->end()
10681069
->end()

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1471,10 +1471,13 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder
14711471
$config['default_bus'] = array_keys($config['buses'])[0];
14721472
}
14731473

1474+
$defaultMiddlewares = array('before' => array('logging', 'validation'), 'after' => array('route_messages', 'call_message_handler'));
1475+
14741476
foreach ($config['buses'] as $name => $bus) {
14751477
$busId = 'messenger.bus.'.$name;
14761478

1477-
$container->setParameter($busId.'.middlewares', $bus['middlewares']);
1479+
$middlewares = $bus['default_middlewares'] ? array_merge($defaultMiddlewares['before'], $bus['middlewares'], $defaultMiddlewares['after']) : $bus['middlewares'];
1480+
$container->setParameter($busId.'.middlewares', $middlewares);
14781481
$container->setDefinition($busId, (new Definition(MessageBus::class, array(array())))->addTag('messenger.bus', array('name' => $name)));
14791482

14801483
if ($name === $config['default_bus']) {

src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,7 @@
406406
<xsd:element name="middleware" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
407407
</xsd:sequence>
408408
<xsd:attribute name="name" type="xsd:string" use="required"/>
409+
<xsd:attribute name="default-middlewares" type="xsd:boolean"/>
409410
</xsd:complexType>
410411

411412
<xsd:complexType name="messenger_validation">

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ class_exists(SemaphoreStore::class) && SemaphoreStore::isSupported() ? 'semaphor
268268
'encoder' => 'messenger.transport.serializer',
269269
'decoder' => 'messenger.transport.serializer',
270270
'default_bus' => null,
271-
'buses' => array('default' => array('middlewares' => array('logging', 'route_messages', 'call_message_handler'))),
271+
'buses' => array('default' => array('default_middlewares' => true, 'middlewares' => array())),
272272
),
273273
);
274274
}

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66
'buses' => array(
77
'commands' => null,
88
'events' => array(
9+
'middlewares' => array(
10+
'Symfony\\Component\\Messenger\\Middleware\\TolerateNoHandler',
11+
),
12+
),
13+
'queries' => array(
14+
'default_middlewares' => false,
915
'middlewares' => array(
1016
'route_messages',
1117
'Symfony\\Component\\Messenger\\Middleware\\TolerateNoHandler',

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
<framework:messenger default-bus="commands">
1010
<framework:bus name="commands" />
1111
<framework:bus name="events">
12+
<framework:middleware>Symfony\Component\Messenger\Middleware\TolerateNoHandler</framework:middleware>
13+
</framework:bus>
14+
<framework:bus name="queries" default-middlewares="false">
1215
<framework:middleware>route_messages</framework:middleware>
1316
<framework:middleware>Symfony\Component\Messenger\Middleware\TolerateNoHandler</framework:middleware>
1417
<framework:middleware>call_message_handler</framework:middleware>

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ framework:
44
buses:
55
commands: ~
66
events:
7+
middlewares:
8+
- "Symfony\\Component\\Messenger\\Middleware\\TolerateNoHandler"
9+
queries:
10+
default_middlewares: false
711
middlewares:
812
- "route_messages"
913
- "Symfony\\Component\\Messenger\\Middleware\\TolerateNoHandler"

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -596,10 +596,13 @@ public function testMessengerWithMultipleBuses()
596596

597597
$this->assertTrue($container->has('messenger.bus.commands'));
598598
$this->assertSame(array(), $container->getDefinition('messenger.bus.commands')->getArgument(0));
599-
$this->assertEquals(array('logging', 'route_messages', 'call_message_handler'), $container->getParameter('messenger.bus.commands.middlewares'));
599+
$this->assertEquals(array('logging', 'validation', 'route_messages', 'call_message_handler'), $container->getParameter('messenger.bus.commands.middlewares'));
600600
$this->assertTrue($container->has('messenger.bus.events'));
601601
$this->assertSame(array(), $container->getDefinition('messenger.bus.events')->getArgument(0));
602-
$this->assertEquals(array('route_messages', TolerateNoHandler::class, 'call_message_handler'), $container->getParameter('messenger.bus.events.middlewares'));
602+
$this->assertEquals(array('logging', 'validation', TolerateNoHandler::class, 'route_messages', 'call_message_handler'), $container->getParameter('messenger.bus.events.middlewares'));
603+
$this->assertTrue($container->has('messenger.bus.queries'));
604+
$this->assertSame(array(), $container->getDefinition('messenger.bus.queries')->getArgument(0));
605+
$this->assertEquals(array('route_messages', TolerateNoHandler::class, 'call_message_handler'), $container->getParameter('messenger.bus.queries.middlewares'));
603606

604607
$this->assertTrue($container->hasAlias('message_bus'));
605608
$this->assertSame('messenger.bus.commands', (string) $container->getAlias('message_bus'));

0 commit comments

Comments
 (0)
0