renderer = $renderer; } /** * {@inheritDoc} */ public function attach(EventManagerInterface $events, $priority = 1) { $this->listeners[] = $events->attach(MvcEvent::EVENT_RENDER, [$this, 'render'], -10000); } /** * Render the view * * @param MvcEvent $e * @return Response */ public function render(MvcEvent $e) { $result = $e->getResult(); if ($result instanceof Response) { return $result; // the result is already rendered ... } // Marshal arguments $response = $e->getResponse(); // Render the result $responseText = $this->renderer->render($result); // Fetch service manager $sm = $e->getApplication()->getServiceManager(); // Fetch console $console = $sm->get('console'); // Append console response to response object $content = $response->getContent() . $responseText; if (is_callable([$console, 'encodeText'])) { $content = $console->encodeText($content); } $response->setContent($content); // Pass on console-specific options if ($response instanceof ConsoleResponse && $result instanceof ConsoleViewModel ) { $errorLevel = $result->getErrorLevel(); $response->setErrorLevel($errorLevel); } return $response; } }