Esempio n. 1
0
 /**
  * Render the feed in specified format.
  *
  * @param Feed $feed Feed to render
  *
  * @return string
  *
  * @throws \InvalidArgumentException if given format formatter does not exists
  */
 public function render(Feed $feed)
 {
     $items = $this->dm->getRepository('Api43FeedBundle:FeedItem')->findByFeed($feed->getId(), $feed->getSortBy());
     $feedUrl = $this->router->generate('feed_xml', array('slug' => $feed->getSlug()), true);
     switch ($feed->getFormatter()) {
         case 'rss':
             $formatter = new Formatter\RssFormatter($feed, $items, $feedUrl, $this->generator);
             break;
         case 'atom':
             $formatter = new Formatter\AtomFormatter($feed, $items, $feedUrl, $this->generator);
             break;
         default:
             throw new \InvalidArgumentException(sprintf("Format '%s' is not available. Please see documentation.", $feed->getFormatter()));
     }
     return $formatter->render();
 }