Skip to content

Commit b18693a

Browse files
committed
Uses tagged arguments for the message bus (for now)
1 parent 216d4ea commit b18693a

File tree

4 files changed

+6
-15
lines changed

4 files changed

+6
-15
lines changed

src/Symfony/Bundle/FrameworkBundle/Resources/config/message.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
<!-- Bus -->
1111
<service id="message_bus" class="Symfony\Component\Message\MessageBus" public="true">
12-
<argument type="collection" /> <!-- Middlewares -->
12+
<argument type="tagged" tag="message_middleware" /> <!-- Middlewares -->
1313
</service>
1414

1515
<service id="Symfony\Component\Message\MessageBusInterface" alias="message_bus" />

src/Symfony/Component/Message/DependencyInjection/MessagePass.php

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,12 @@ class MessagePass implements CompilerPassInterface
2828
use PriorityTaggedServiceTrait;
2929

3030
private $messageBusService;
31-
private $middlewareTag;
3231
private $messageHandlerResolverService;
3332
private $handlerTag;
3433

35-
public function __construct(string $messageBusService = 'message_bus', string $middlewareTag = 'message_middleware', string $messageHandlerResolverService = 'message.handler_resolver', string $handlerTag = 'message_handler')
34+
public function __construct(string $messageBusService = 'message_bus', string $messageHandlerResolverService = 'message.handler_resolver', string $handlerTag = 'message_handler')
3635
{
3736
$this->messageBusService = $messageBusService;
38-
$this->middlewareTag = $middlewareTag;
3937
$this->messageHandlerResolverService = $messageHandlerResolverService;
4038
$this->handlerTag = $handlerTag;
4139
}
@@ -49,13 +47,6 @@ public function process(ContainerBuilder $container)
4947
return;
5048
}
5149

52-
if (!$middlewares = $this->findAndSortTaggedServices($this->middlewareTag, $container)) {
53-
throw new RuntimeException(sprintf('You must tag at least one service as "%s" to use the "%s" service.', $this->middlewareTag, $this->messageBusService));
54-
}
55-
56-
$busDefinition = $container->getDefinition($this->messageBusService);
57-
$busDefinition->replaceArgument(0, $middlewares);
58-
5950
$this->registerHandlers($container);
6051
}
6152

src/Symfony/Component/Message/HandlerLocator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public function resolve($message): callable
3535
{
3636
$messageKey = get_class($message);
3737

38-
if (!array_key_exists($messageKey, $this->messageToHandlerMapping)) {
38+
if (!isset($this->messageToHandlerMapping[$messageKey])) {
3939
throw new NoHandlerForMessageException(sprintf('No handler for message "%s"', $messageKey));
4040
}
4141

src/Symfony/Component/Message/MessageBus.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ class MessageBus implements MessageBusInterface
2323
private $middlewares;
2424

2525
/**
26-
* @param MiddlewareInterface[] $middlewares
26+
* @param MiddlewareInterface[]|iterable $middlewares
2727
*/
28-
public function __construct(array $middlewares = array())
28+
public function __construct(iterable $middlewares = array())
2929
{
30-
$this->middlewares = $middlewares;
30+
$this->middlewares = is_array($middlewares) ? array_values($middlewares) : iterator_to_array($middlewares, false);
3131
}
3232

3333
/**

0 commit comments

Comments
 (0)