Prooph\ServiceBus\Plugin\Router\EventRouter::onRouteMessage PHP Méthode

onRouteMessage() public méthode

public onRouteMessage ( Prooph\Common\Event\ActionEvent $actionEvent )
$actionEvent Prooph\Common\Event\ActionEvent
    public function onRouteMessage(ActionEvent $actionEvent)
    {
        $messageName = (string) $actionEvent->getParam(MessageBus::EVENT_PARAM_MESSAGE_NAME);
        if (empty($messageName)) {
            return;
        }
        if (!isset($this->eventMap[$messageName])) {
            return;
        }
        $listeners = $actionEvent->getParam(EventBus::EVENT_PARAM_EVENT_LISTENERS, []);
        $listeners = array_merge($listeners, $this->eventMap[$messageName]);
        $actionEvent->setParam(EventBus::EVENT_PARAM_EVENT_LISTENERS, $listeners);
    }

Usage Example

 /**
  * @test
  */
 public function it_returns_early_on_route_event_when_message_name_is_not_in_event_map()
 {
     $router = new EventRouter(['SomethingDone' => ['SomethingDoneListener1', 'SomethingDoneListener2']]);
     $actionEvent = new DefaultActionEvent(MessageBus::EVENT_ROUTE, new EventBus(), [MessageBus::EVENT_PARAM_MESSAGE_NAME => 'unknown']);
     $router->onRouteMessage($actionEvent);
     $listeners = $actionEvent->getParam(EventBus::EVENT_PARAM_EVENT_LISTENERS);
     $this->assertEmpty($listeners);
 }