8000 Merge branch '5.0' into 5.1 · symfony/symfony@ea25825 · GitHub
[go: up one dir, main page]

Skip to content

Commit ea25825

Browse files
Merge branch '5.0' into 5.1
* 5.0: [Messenger] fix computing the id of same-name middleware
2 parents 62dbb9a + da30c7a commit ea25825

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -339,15 +339,18 @@ private function registerBusMiddleware(ContainerBuilder $container, string $busI
339339
if ($container->findDefinition($messengerMiddlewareId)->isAbstract()) {
340340
$childDefinition = new ChildDefinition($messengerMiddlewareId);
341341
$childDefinition->setArguments($arguments);
342-
$container->setDefinition($messengerMiddlewareId = $busId.'.middleware.'.$id.'.'.ContainerBuilder::hash($arguments), $childDefinition);
342+
if (isset($middlewareReferences[$messengerMiddlewareId = $busId.'.middleware.'.$id])) {
343+
$messengerMiddlewareId .= '.'.ContainerBuilder::hash($arguments);
344+
}
345+
$container->setDefinition($messengerMiddlewareId, $childDefinition);
343346
} elseif ($arguments) {
344347
throw new RuntimeException(sprintf('Invalid middleware factory "%s": a middleware factory must be an abstract definition.', $id));
345348
}
346349

347-
$middlewareReferences[] = new Reference($messengerMiddlewareId);
350+
$middlewareReferences[$messengerMiddlewareId] = new Reference($messengerMiddlewareId);
348351
}
349352

350-
$container->getDefinition($busId)->replaceArgument(0, new IteratorArgument($middlewareReferences));
353+
$container->getDefinition($busId)->replaceArgument(0, new IteratorArgument(array_values($middlewareReferences)));
351354
}
352355

353356
private function getServiceClass(ContainerBuilder $container, string $serviceId): string

src/Symfony/Component/Messenger/Tests/DependencyInjection/MessengerPassTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,7 @@ public function testRegistersMiddlewareFromServices()
546546
(new ResolveChildDefinitionsPass())->process($container);
547547

548548
$this->assertTrue($container->hasDefinition(
549-
$factoryChildMiddlewareArgs1Id = $fooBusId.'.middleware.middleware_with_factory.'.ContainerBuilder::hash($factoryChildMiddlewareArgs1)
549+
$factoryChildMiddlewareArgs1Id = $fooBusId.'.middleware.middleware_with_factory'
550550
));
551551
$this->assertEquals(
552552
['foo', 'bar'],
@@ -564,7 +564,7 @@ public function testRegistersMiddlewareFromServices()
564564
);
565565

566566
$this->assertTrue($container->hasDefinition(
567-
$factoryWithDefaultChildMiddlewareId = $fooBusId.'.middleware.middleware_with_factory_using_default.'.ContainerBuilder::hash([])
567+
$factoryWithDefaultChildMiddlewareId = $fooBusId.'.middleware.middleware_with_factory_using_default'
568568
));
569569
$this->assertEquals(
570570
['some_default'],

0 commit comments

Comments
 (0)
0