Skip to content

Utilisation basique

Nek- edited this page Mar 4, 2013 · 2 revisions

Configuration

Ce bundle a besoin d'être configuré pour reconnaître vos flux. Voici un exemple de configuration possible:

nekland_feed:
    feeds:
        post:
            class:        Nekland\BlogBundle\Entity\Post
            title:       'My fabulous posts'
            description: 'Here are my very fabulous posts'
            # usally the homepage
            url:         'http://www.my-website.com'
            language:    'fr'
            filename: "blog.|format|"

Dans cet exemple nous utilisons un model comme objet pour le flux mais vous pouvez utiliser n'importe quelle classe du moment qu'elle implémente ItemInterface:

    class Post implements ItemInterface
    {
        // Implement the needed methods
    }

La configuration est terminée, vous pouvez créer vos flux quand vous le souhaitez dans le code. Bien entendu cela se fait généralement dans un contrôleur c'est pour cela que notre exemple se fera dans celui-ci.

Utiliser le FeedBundle dans un contrôleur

  1. Récupérons l'usine à flux (the feed factory):

     $factory = $this->get('nekland_feed.factory');
    
  2. Chargeons un flux:

     // "post" est le nom du flux dans la configuration
     $factory->load('post', 'rss_file'); 
     // Pour cet exemple nous utilisons rss_fil mais c'est en fait la valeur par défaut, et si on le veut on peut utiliser un autre loader.
    

Vous pouvez également utiliser un autre loader comme atom_file ou les deux si vous le souhaitez (c'est d'ailleurs recommandé si vous utilisez l'interface AtomInterface puisqu'elle contient des méthodes qui sont uniquement valables pour le format Atom)

  1. Récupérez le flux (ici "post", comme nous l'avons défini dans la configuration) et ajoutez, remplacer, ou supprimez les objets que vous voulez.

     $feed = $factory->get('post');
     $feed->add($post); // Ajoute un objet qui implémente ItemInterface
     $feed->remove($id); // Supprime un objet en se référant à son id
     $feed->replace($id, $post); // Remplace un objet en se référant toujours à son id
    
  2. Render !

     $factory->render('post', 'rss'); // Nous voulons un flux rss dans cet exemple mais nous pouvons demander un flux atom sans problème