Magazine

Créer un flux RSS avec Zend Framework

Publié le 29 mai 2008 par Dator

Les flux RSS font désormais partit la génération web2.0 des sites web, il est donc intéressant de savoir comment en générer un avec le très bon Zend Framework.

La démarche est très simple, il vous suffit de récupérer le contenu de la base de donnée avec laquelle vous voulez générer un fichier RSS, et ensuite utiliser une classe proposer par Zend Studio; voici la façon de procéder :

Création du contrôleur Feed

La création du contrôleur Feed est élémentaire, c’est lui qui va gérer la création du flux :

class FeedsController extends Zend_Controller_Action {

    public function indexAction(){
    }

}

Une fois le contrôleur crée avec la méthode index (obligatoire), nous allons redéfinir cette méthode afin qu’il nous génère le XML.

Utilisation d’un modèle

Le modèle permet d’accéder aux données de la base de donnée, je ne vais pas vous expliquer comment réaliser un modèle (du moins pas dans cet billet).
Il s’agit enfaite de créer une classe qui permet de faire des requêtes SQL.
Nous allons donc voir comment implémenter cela dans un controlleur.

class FeedsController extends Zend_Controller_Action {
    public function indexAction(){
        // On instancie Article , le modèle
        $articles = new Article();
        // On récupère la liste de tous les articles
        $liste = $articles -> fetchAll();
    }
}

Simple non? Allez maintenant un peu plus compliquer, nous allons utiliser la classe Zend_Feed.

Préparation des données et utilisation de Zend_Feed

class FeedsController extends Zend_Controller_Action {

    public function indexAction(){
        // On instancie Article , le modèle
        $articles = new Article();
        // On récupère la liste de tous les articles
        $liste = $articles -> fetchAll();
        // On créer un tableau de données avec les informations principales
        $feedArray = array(
            'title' => "Liste de mes articles", // titre de mon flux
            'link' => ROOT_URL.'/feeds/', // Lien vers mon flux
            'charset' => 'utf8', // Encodage
            'description' => "Les articles de mon merveilleux site", // description
            'author' => 'Clément', // Moi !
            'email' => 'mon@adresse.fr', // Adresse email
            'copyright' => 'ce sont mes articles !', // Le copyright
            'generator' => 'Zend Framework Zend_Feed',
            'language' => 'fr', // La langue
            'entries' => array() // Un tableau qui va contenir les articles
        );
        // On boucle sur la liste d'article (qui sont des objets)
        foreach ($liste as $article) {
            $feedArray['entries'][] = array(
                'title' => $article -> titre, // Le titre de l'article
                'link' => ROOT_URL.'/'.$article -> lien, // le lien
                // La description de l'article
                // utf8_decode permet de mettre des accents !
                'description' => utf8_encode($article -> description),
                // Le contenu de l'article
                // utf8_decode permet de mettre des accents !
                'content' => utf8_encode($article -> description)
            );
        }
        /* On utilise Zend_Feed avec notre tableau et on lui dis
        que c'est un flux RSS ( par défault c'est Atom)
        */
        $feed = Zend_Feed::importArray($feedArray,'rss');
        $feed -> send();
        // On affiche le flux !
    }
}

Il nous reste plus qu’à créer notre vue (car sinon nous allons avoir une erreur) et contempler le résultats !


Mots-clés : Web 2.0, Zend, Framework

Vous pourriez être intéressé par :

Retour à La Une de Logo Paperblog

Ces articles peuvent vous intéresser :

  • Podcast : Interet des flux RSS

    Podcast Interet flux

    Influence des flux RSS sur le comportement des internautes.Source imageEcoutez le podcastVia : Lire la suite

    Par  Camille Jourdain
    EBUSINESS, EMARKETING, FOCUS EMPLOI, INTERNET, MARKETING & PUBLICITÉ
  • Zend: Introduction à Xdebug

    Le premier article d'une série consacrée à Xdebug est disponible sur la Zend Developer Zone. Pour rappel, Xdebug est une extension PHP dont le but est de... Lire la suite

    Par  Marie
    INTERNET, PROGRAMMATION
  • L’année 2007 en RSS

    L’année 2007

    Bienvenue, n’hesitez pas a vous abonnez a notre flux RSSsi l’article vous a plu. Merci de votre visite L’année qui se termine a été une très riche pour le RSS. Lire la suite

    Par  Julien G
    INTERNET, RSS
  • Jelix, un framework PHP performant

    Jelix, framework performant

    C’est en faisant des recherches sur les différents frameworks PHP que j’ai découvert . Ce dernier est fork de Copix redéveloppé en vue de son amélioration pour... Lire la suite

    Par  Spawnrider
    INTERNET
  • Zend Studio pour Eclipse

    est pour bientôt. Yossi Leon communique sur le Zend Blog que le ZSfE (Zend Studio for Eclipse) serait en bonne voie de disponibilité d'ici peu. Lire la suite

    Par  Marie
    INTERNET, PROGRAMMATION
  • Flux rss et google reader

    Il semblerait que certains d'entre vous rencontrent des problèmes d'affichage dans google reader. J'ai testé les deux liens flux rss disponible pour ce blog dan... Lire la suite

    Par  Carine
    CONSO
  • Un dimanche de RSS

    dimanche

    Bienvenue, n’hesitez pas a vous abonnez a notre flux RSSsi l’article vous a plu. Merci de votre visiteEn raison du Forum e-marketing , je vais avoir peu de temp... Lire la suite

    Par  Julien G
    INTERNET, RSS

A propos de l’auteur


Dator 51 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossier Paperblog