Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f711250

Browse files
committed
Just use Closure::fromCallable, we don't need the wrapper actually. Nice one.
1 parent f92b30c commit f711250

File tree

3 files changed

+5
-47
lines changed

3 files changed

+5
-47
lines changed

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
use Symfony\Component\Messenger\Handler\ChainHandler;
2323
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;
2424
use Symfony\Component\Messenger\Handler\MessageSubscriberInterface;
25-
use Symfony\Component\Messenger\Handler\MethodOnObjectHandler;
2625
use Symfony\Component\Messenger\TraceableMessageBus;
2726

2827
/**
@@ -117,9 +116,9 @@ private function registerHandlers(ContainerBuilder $container)
117116
}
118117

119118
if ('__invoke' !== $method) {
120-
$wrapperDefinition = (new Definition(MethodOnObjectHandler::class))->setArguments(array(new Reference($serviceId), $method));
119+
$wrapperDefinition = (new Definition('callable'))->addArgument(array(new Reference($serviceId), $method))->setFactory('Closure::fromCallable');
121120

122-
$definitions[$serviceId = '.messenger.method_on_object_handler.'.ContainerBuilder::hash($messageClass.':'.$messagePriority.':'.$serviceId.':'.$method)] = $wrapperDefinition;
121+
$definitions[$serviceId = '.messenger.method_on_object_wrapper.'.ContainerBuilder::hash($messageClass.':'.$messagePriority.':'.$serviceId.':'.$method)] = $wrapperDefinition;
123122
}
124123

125124
$handlersByMessage[$messageClass][$messagePriority][] = new Reference($serviceId);

src/Symfony/Component/Messenger/Handler/MethodOnObjectHandler.php

Lines changed: 0 additions & 40 deletions
This file was deleted.

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
use Symfony\Component\Messenger\DependencyInjection\MessengerPass;
2424
use Symfony\Component\Messenger\Handler\ChainHandler;
2525
use Symfony\Component\Messenger\Handler\MessageSubscriberInterface;
26-
use Symfony\Component\Messenger\Handler\MethodOnObjectHandler;
2726
use Symfony\Component\Messenger\MessageBusInterface;
2827
use Symfony\Component\Messenger\Middleware\AllowNoHandlerMiddleware;
2928
use Symfony\Component\Messenger\Middleware\MiddlewareInterface;
@@ -119,9 +118,9 @@ public function testGetClassesAndMethodsAndPrioritiesFromTheSubscriber()
119118

120119
$dummyHandlerReference = (string) $handlerMapping['handler.'.DummyMessage::class]->getValues()[0];
121120
$dummyHandlerDefinition = $container->getDefinition($dummyHandlerReference);
122-
$this->assertSame(MethodOnObjectHandler::class, $dummyHandlerDefinition->getClass());
123-
$this->assertEquals(new Reference(HandlerMappingMethods::class), $dummyHandlerDefinition->getArgument(0));
124-
$this->assertSame('dummyMethod', $dummyHandlerDefinition->getArgument(1));
121+
$this->assertSame('callable', $dummyHandlerDefinition->getClass());
122+
$this->assertEquals(array(new Reference(HandlerMappingMethods::class), 'dummyMethod'), $dummyHandlerDefinition->getArgument(0));
123+
$this->assertSame(array('Closure', 'fromCallable'), $dummyHandlerDefinition->getFactory());
125124

126125
$secondHandlerReference = (string) $handlerMapping['handler.'.SecondMessage::class]->getValues()[0];
127126
$secondHandlerDefinition = $container->getDefinition($secondHandlerReference);

0 commit comments

Comments
 (0)