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' => '[email protected]', // 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

Retour à La Une de Logo Paperblog

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

Dossier Paperblog