/** * @param ViewEvent $e The ViewEvent instance * @return void */ public function injectResponse($e) { $renderer = $e->getRenderer(); $response = $e->getResponse(); $result = $e->getResult(); if ($renderer === $this->jsonRenderer) { // JSON Renderer; set content-type header $headers = $response->getHeaders(); $headers->addHeaderLine('content-type', 'application/json'); } elseif ($renderer === $this->feedRenderer) { // Feed Renderer; set content-type header, and export the feed if // necessary $feedType = $this->feedRenderer->getFeedType(); $headers = $response->getHeaders(); $mediatype = 'application/' . ('rss' == $feedType ? 'rss' : 'atom') . '+xml'; $headers->addHeaderLine('content-type', $mediatype); // If the $result is a feed, export it if ($result instanceof Feed) { $result = $result->export($feedType); } } elseif ($renderer !== $this->phpRenderer) { // Not a renderer we support, therefor not our strategy. Return return; } // Inject the content $response->setContent($result); }