Skip to content

Commit 97aab08

Browse files
committed
minor symfony#28697 [Messenger] drop "handler." prefix from ContainerHandlerLocator (nicolas-grekas)
This PR was merged into the 4.2-dev branch. Discussion ---------- [Messenger] drop "handler." prefix from ContainerHandlerLocator | Q | A | ------------- | --- | Branch? | master | Bug fix? | no | New feature? | no | BC breaks? | yes | Deprecations? | no | Tests pass? | yes | Fixed tickets | symfony#28621 | License | MIT | Doc PR | - I fail to understand what this prefix is for. Looks like boilerplate to me, let's drop it, isn't it? An alternative to symfony#28621 Commits ------- 6c56e82 [Messenger] drop "handler." prefix from ContainerHandlerLocator
2 parents 679f8d9 + 6c56e82 commit 97aab08

File tree

7 files changed

+46
-34
lines changed

7 files changed

+46
-34
lines changed

src/Symfony/Component/Messenger/CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ CHANGELOG
44
4.2.0
55
-----
66

7-
* [BC BREAK] The signature of Amqp* classes changed to take a `Connection` as a first argument and an optional
7+
* The component is not experimental anymore
8+
* [BC BREAK] The signature of `Amqp*` classes changed to take a `Connection` as a first argument and an optional
89
`Serializer` as a second argument.
910
* [BC BREAK] `SenderLocator` has been renamed to `ContainerSenderLocator`
1011
Be careful as there is still a `SenderLocator` class, but it does not rely on a `ContainerInterface` to find senders.
@@ -16,3 +17,10 @@ CHANGELOG
1617
* [BC BREAK] The `ConsumeMessagesCommand` class now takes an instance of `Psr\Container\ContainerInterface`
1718
as first constructor argument
1819
* [BC BREAK] The `EncoderInterface` and `DecoderInterface` have been replaced by a unified `Symfony\Component\Messenger\Transport\Serialization\SerializerInterface`.
20+
* [BC BREAK] The locator passed to `ContainerHandlerLocator` should not prefix its keys by "handler." anymore
21+
* [BC BREAK] The `AbstractHandlerLocator::getHandler()` method uses `?callable` as return type
22+
23+
4.1.0
24+
-----
25+
26+
* Introduced the component as experimental

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,15 +167,15 @@ private function registerHandlers(ContainerBuilder $container, array $busIds)
167167
foreach ($handlersByBusAndMessage as $bus => $handlersByMessage) {
168168
foreach ($handlersByMessage as $message => $handlersIds) {
169169
if (1 === \count($handlersIds)) {
170-
$handlersLocatorMappingByBus[$bus]['handler.'.$message] = new Reference(current($handlersIds));
170+
$handlersLocatorMappingByBus[$bus][$message] = new Reference(current($handlersIds));
171171
} else {
172172
$chainHandler = new Definition(ChainHandler::class, array(array_map(function (string $handlerId): Reference {
173173
return new Reference($handlerId);
174174
}, $handlersIds)));
175175
$chainHandler->setPrivate(true);
176176
$serviceId = '.messenger.chain_handler.'.ContainerBuilder::hash($bus.$message);
177177
$definitions[$serviceId] = $chainHandler;
178-
$handlersLocatorMappingByBus[$bus]['handler.'.$message] = new Reference($serviceId);
178+
$handlersLocatorMappingByBus[$bus][$message] = new Reference($serviceId);
179179
}
180180
}
181181
}

src/Symfony/Component/Messenger/Handler/Locator/AbstractHandlerLocator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,5 @@ public function resolve($message): callable
4242
throw new NoHandlerForMessageException(sprintf('No handler for message "%s".', $class));
4343
}
4444

45-
abstract protected function getHandler(string $class);
45+
abstract protected function getHandler(string $class): ?callable;
4646
}

src/Symfony/Component/Messenger/Handler/Locator/ContainerHandlerLocator.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,11 @@ public function __construct(ContainerInterface $container)
2626
$this->container = $container;
2727
}
2828

29-
protected function getHandler(string $class)
29+
/**
30+
* {@inheritdoc}
31+
*/
32+
protected function getHandler(string $class): ?callable
3033
{
31-
$handlerKey = 'handler.'.$class;
32-
33-
return $this->container->has($handlerKey) ? $this->container->get($handlerKey) : null;
34+
return $this->container->has($class) ? $this->container->get($class) : null;
3435
}
3536
}

src/Symfony/Component/Messenger/Handler/Locator/HandlerLocator.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@ public function __construct(array $messageToHandlerMapping = array())
2626
$this->messageToHandlerMapping = $messageToHandlerMapping;
2727
}
2828

29-
protected function getHandler(string $class)
29+
/**
30+
* {@inheritdoc}
31+
*/
32+
protected function getHandler(string $class): ?callable
3033
{
3134
return $this->messageToHandlerMapping[$class] ?? null;
3235
}

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

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ public function testProcess()
6969
$this->assertSame(ServiceLocator::class, $handlerLocatorDefinition->getClass());
7070
$this->assertEquals(
7171
array(
72-
'handler.'.DummyMessage::class => new ServiceClosureArgument(new Reference(DummyHandler::class)),
73-
'handler.'.SecondMessage::class => new ServiceClosureArgument(new Reference(MissingArgumentTypeHandler::class)),
72+
DummyMessage::class => new ServiceClosureArgument(new Reference(DummyHandler::class)),
73+
SecondMessage::class => new ServiceClosureArgument(new Reference(MissingArgumentTypeHandler::class)),
7474
),
7575
$handlerLocatorDefinition->getArgument(0)
7676
);
@@ -109,8 +109,8 @@ public function testProcessHandlersByBus()
109109
$this->assertSame(ServiceLocator::class, $commandBusHandlerLocatorDefinition->getClass());
110110
$this->assertEquals(
111111
array(
112-
'handler.'.DummyCommand::class => new ServiceClosureArgument(new Reference(DummyCommandHandler::class)),
113-
'handler.'.MultipleBusesMessage::class => new ServiceClosureArgument(new Reference(MultipleBusesMessageHandler::class)),
112+
DummyCommand::class => new ServiceClosureArgument(new Reference(DummyCommandHandler::class)),
113+
MultipleBusesMessage::class => new ServiceClosureArgument(new Reference(MultipleBusesMessageHandler::class)),
114114
),
115115
$commandBusHandlerLocatorDefinition->getArgument(0)
116116
);
@@ -119,8 +119,8 @@ public function testProcessHandlersByBus()
119119
$this->assertSame(ServiceLocator::class, $queryBusHandlerLocatorDefinition->getClass());
120120
$this->assertEquals(
121121
array(
122-
'handler.'.DummyQuery::class => new ServiceClosureArgument(new Reference(DummyQueryHandler::class)),
123-
'handler.'.MultipleBusesMessage::class => new ServiceClosureArgument(new Reference(MultipleBusesMessageHandler::class)),
122+
DummyQuery::class => new ServiceClosureArgument(new Reference(DummyQueryHandler::class)),
123+
MultipleBusesMessage::class => new ServiceClosureArgument(new Reference(MultipleBusesMessageHandler::class)),
124124
),
125125
$queryBusHandlerLocatorDefinition->getArgument(0)
126126
);
@@ -157,11 +157,11 @@ public function testGetClassesFromTheHandlerSubscriberInterface()
157157
$handlerLocatorDefinition = $container->getDefinition($container->getDefinition("$busId.messenger.handler_resolver")->getArgument(0));
158158
$handlerMapping = $handlerLocatorDefinition->getArgument(0);
159159

160-
$this->assertArrayHasKey('handler.'.DummyMessage::class, $handlerMapping);
161-
$this->assertEquals(new ServiceClosureArgument(new Reference(HandlerWithMultipleMessages::class)), $handlerMapping['handler.'.DummyMessage::class]);
160+
$this->assertArrayHasKey(DummyMessage::class, $handlerMapping);
161+
$this->assertEquals(new ServiceClosureArgument(new Reference(HandlerWithMultipleMessages::class)), $handlerMapping[DummyMessage::class]);
162162

163-
$this->assertArrayHasKey('handler.'.SecondMessage::class, $handlerMapping);
164-
$handlerReference = (string) $handlerMapping['handler.'.SecondMessage::class]->getValues()[0];
163+
$this->assertArrayHasKey(SecondMessage::class, $handlerMapping);
164+
$handlerReference = (string) $handlerMapping[SecondMessage::class]->getValues()[0];
165165
$definition = $container->getDefinition($handlerReference);
166166

167167
$this->assertSame(ChainHandler::class, $definition->getClass());
@@ -185,16 +185,16 @@ public function testGetClassesAndMethodsAndPrioritiesFromTheSubscriber()
185185
$handlerLocatorDefinition = $container->getDefinition($container->getDefinition("$busId.messenger.handler_resolver")->getArgument(0));
186186
$handlerMapping = $handlerLocatorDefinition->getArgument(0);
187187

188-
$this->assertArrayHasKey('handler.'.DummyMessage::class, $handlerMapping);
189-
$this->assertArrayHasKey('handler.'.SecondMessage::class, $handlerMapping);
188+
$this->assertArrayHasKey(DummyMessage::class, $handlerMapping);
189+
$this->assertArrayHasKey(SecondMessage::class, $handlerMapping);
190190

191-
$dummyHandlerReference = (string) $handlerMapping['handler.'.DummyMessage::class]->getValues()[0];
191+
$dummyHandlerReference = (string) $handlerMapping[DummyMessage::class]->getValues()[0];
192192
$dummyHandlerDefinition = $container->getDefinition($dummyHandlerReference);
193193
$this->assertSame('callable', $dummyHandlerDefinition->getClass());
194194
$this->assertEquals(array(new Reference(HandlerMappingMethods::class), 'dummyMethod'), $dummyHandlerDefinition->getArgument(0));
195195
$this->assertSame(array('Closure', 'fromCallable'), $dummyHandlerDefinition->getFactory());
196196

197-
$secondHandlerReference = (string) $handlerMapping['handler.'.SecondMessage::class]->getValues()[0];
197+
$secondHandlerReference = (string) $handlerMapping[SecondMessage::class]->getValues()[0];
198198
$secondHandlerDefinition = $container->getDefinition($secondHandlerReference);
199199
$this->assertSame(ChainHandler::class, $secondHandlerDefinition->getClass());
200200
$this->assertEquals(new Reference(PrioritizedHandler::class), $secondHandlerDefinition->getArgument(0)[1]);
@@ -291,12 +291,12 @@ public function testItShouldNotThrowIfGeneratorIsReturnedInsteadOfArray()
291291
$handlerLocatorDefinition = $container->getDefinition($container->getDefinition("$busId.messenger.handler_resolver")->getArgument(0));
292292
$handlerMapping = $handlerLocatorDefinition->getArgument(0);
293293

294-
$this->assertArrayHasKey('handler.'.DummyMessage::class, $handlerMapping);
295-
$firstReference = $handlerMapping['handler.'.DummyMessage::class]->getValues()[0];
294+
$this->assertArrayHasKey(DummyMessage::class, $handlerMapping);
295+
$firstReference = $handlerMapping[DummyMessage::class]->getValues()[0];
296296
$this->assertEquals(array(new Reference(HandlerWithGenerators::class), 'dummyMethod'), $container->getDefinition($firstReference)->getArgument(0));
297297

298-
$this->assertArrayHasKey('handler.'.SecondMessage::class, $handlerMapping);
299-
$secondReference = $handlerMapping['handler.'.SecondMessage::class]->getValues()[0];
298+
$this->assertArrayHasKey(SecondMessage::class, $handlerMapping);
299+
$secondReference = $handlerMapping[SecondMessage::class]->getValues()[0];
300300
$this->assertEquals(array(new Reference(HandlerWithGenerators::class), 'secondMessage'), $container->getDefinition($secondReference)->getArgument(0));
301301
}
302302

@@ -315,15 +315,15 @@ public function testItRegistersHandlersOnDifferentBuses()
315315
$eventsHandlerLocatorDefinition = $container->getDefinition($container->getDefinition($eventsBusId.'.messenger.handler_resolver')->getArgument(0));
316316
$eventsHandlerMapping = $eventsHandlerLocatorDefinition->getArgument(0);
317317

318-
$this->assertEquals(array('handler.'.DummyMessage::class), array_keys($eventsHandlerMapping));
319-
$firstReference = $eventsHandlerMapping['handler.'.DummyMessage::class]->getValues()[0];
318+
$this->assertEquals(array(DummyMessage::class), array_keys($eventsHandlerMapping));
319+
$firstReference = $eventsHandlerMapping[DummyMessage::class]->getValues()[0];
320320
$this->assertEquals(array(new Reference(HandlerOnSpecificBuses::class), 'dummyMethodForEvents'), $container->getDefinition($firstReference)->getArgument(0));
321321

322322
$commandsHandlerLocatorDefinition = $container->getDefinition($container->getDefinition($commandsBusId.'.messenger.handler_resolver')->getArgument(0));
323323
$commandsHandlerMapping = $commandsHandlerLocatorDefinition->getArgument(0);
324324

325-
$this->assertEquals(array('handler.'.DummyMessage::class), array_keys($commandsHandlerMapping));
326-
$firstReference = $commandsHandlerMapping['handler.'.DummyMessage::class]->getValues()[0];
325+
$this->assertEquals(array(DummyMessage::class), array_keys($commandsHandlerMapping));
326+
$firstReference = $commandsHandlerMapping[DummyMessage::class]->getValues()[0];
327327
$this->assertEquals(array(new Reference(HandlerOnSpecificBuses::class), 'dummyMethodForCommands'), $container->getDefinition($firstReference)->getArgument(0));
328328
}
329329

src/Symfony/Component/Messenger/Tests/Handler/Locator/ContainerHandlerLocatorTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public function testItLocatesHandlerUsingTheMessageClass()
1616
$handler = function () {};
1717

1818
$container = new Container();
19-
$container->set('handler.'.DummyMessage::class, $handler);
19+
$container->set(DummyMessage::class, $handler);
2020

2121
$locator = new ContainerHandlerLocator($container);
2222
$resolvedHandler = $locator->resolve(new DummyMessage('Hey'));
@@ -39,7 +39,7 @@ public function testResolveMessageViaTheirInterface()
3939
$handler = function () {};
4040

4141
$container = new Container();
42-
$container->set('handler.'.DummyMessageInterface::class, $handler);
42+
$container->set(DummyMessageInterface::class, $handler);
4343

4444
$locator = new ContainerHandlerLocator($container);
4545
$resolvedHandler = $locator->resolve(new DummyMessage('Hey'));
@@ -52,7 +52,7 @@ public function testResolveMessageViaTheirParentClass()
5252
$handler = function () {};
5353

5454
$container = new Container();
55-
$container->set('handler.'.DummyMessage::class, $handler);
55+
$container->set(DummyMessage::class, $handler);
5656

5757
$locator = new ContainerHandlerLocator($container);
5858
$resolvedHandler = $locator->resolve(new ChildDummyMessage('Hey'));

0 commit comments

Comments
 (0)