renderersPool = $renderersPool; $this->messageConfigurationsPool = $messageConfigurationsPool; } /** * Interpret message * * @param MessageInterface $message * @return string * @throws \LogicException */ public function interpret(MessageInterface $message) { $messageConfiguration = $this->messageConfigurationsPool->getMessageConfiguration( $message->getIdentifier() ); if (null === $messageConfiguration) { throw new \LogicException(); } $renderer = $this->renderersPool->get($messageConfiguration['renderer']); if (null === $renderer) { throw new \LogicException(); } return $renderer->render($message, $messageConfiguration['data']); } }