示例#1
0
 /**
  * @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);
 }