Prooph\ServiceBus\Plugin\ServiceLocatorPlugin::onLocateMessageHandler PHP Метод

onLocateMessageHandler() публичный Метод

public onLocateMessageHandler ( Prooph\Common\Event\ActionEvent $actionEvent )
$actionEvent Prooph\Common\Event\ActionEvent
    public function onLocateMessageHandler(ActionEvent $actionEvent)
    {
        $messageHandlerAlias = $actionEvent->getParam(MessageBus::EVENT_PARAM_MESSAGE_HANDLER);
        if (is_string($messageHandlerAlias) && $this->serviceLocator->has($messageHandlerAlias)) {
            $actionEvent->setParam(MessageBus::EVENT_PARAM_MESSAGE_HANDLER, $this->serviceLocator->get($messageHandlerAlias));
        }
    }

Usage Example

 /**
  * @test
  */
 public function it_locates_a_service_using_the_message_handler_param_of_the_action_event()
 {
     $handler = new MessageHandler();
     $container = $this->prophesize(ContainerInterface::class);
     $container->has("custom-handler")->willReturn(true);
     $container->get("custom-handler")->willReturn($handler);
     $locatorPlugin = new ServiceLocatorPlugin($container->reveal());
     $actionEvent = new DefaultActionEvent(MessageBus::EVENT_LOCATE_HANDLER, new CommandBus(), [MessageBus::EVENT_PARAM_MESSAGE_HANDLER => "custom-handler"]);
     $locatorPlugin->onLocateMessageHandler($actionEvent);
     $this->assertSame($handler, $actionEvent->getParam(MessageBus::EVENT_PARAM_MESSAGE_HANDLER));
 }