Olá amigos!

Dando seguimento à nossa série de tutoriais em Symfony, hoje vamos dar uma dica de como criar um feed RSS do seu site.

feed-symfony

Atenção: Este tutorial é referente à versão 1.4 do Symfony

Primeiramente vamos baixar o plugin sfFeed2Plugin, que pode ser baixado gratuitamente aqui.

Após o download, inclua o coloque-o no seu projeto, na pasta “plugins” e registre-o em seu ProjectConfiguration.class.php. Pronto, agora podemos desenvolver o nosso feed!

Em nossa action, vamos criar nosso método para a geração do feed:

  public function executeFeed(sfWebRequest $request)
  {
    // Retorna a lista a ser exibida no feed
    $news = Doctrine::getTable('News')->findAll();
 
    //Nova instancia do feed
    $feed = new sfRssFeed();
 
    $feed->setTitle('Notícias');
    $feed->setLink('http://www.meusite.com.br/');
    $feed->setAuthorEmail('joaopaulo.zica@verticis.com.br');
    $feed->setAuthorName('João Paulo Zica');
 
    $this->feed = $feed;
 
    foreach ($news as $new)
    {
 
      //Nova instancia dos itens do feed
      $item = new sfFeedItem();
 
      $item->setTitle($new->getTitle());
      $item->setLink('http://www.meusite.com.br/'. url_for('newsShow', $new));
      $item->setAuthorName($new->getAuthor());
      $item->setAuthorEmail($new->getAuthor()->getEmail());
      $dateObject = new DateTime($new->getDate());
      $item->setPubdate($dateObject->format('U'));
      $item->setUniqueId($new->getSlug());
      $item->setDescription($new->getShortDescription());
 
      $this->feed->addItem($item);
    }
 
    // Desabilita o layout
    $this->setLayout(false);
  }

Nosso feedSucess.php ficaria da seguinte maneira:

<!--?php echo $feed-&gt;asXml(ESC_RAW); ?-->

Só nos falta configurar nosso cache, para habilitarmos o feed. Para isto, vamos incluir em nosso cache.yml a seguinte linha:

feed:
  enabled: true

Pronto, desta maneira você já possui um feed para seu site.

Qualquer dúvida, sugestão ou reclamação, utilize formulário de comentários.