SimplePie est une class écrite en PHP, qui permet de rapidement et facilement gérer des liens de syndication dans vos applications web, elle regroupe un certain nombre de méthodes qui vous permetteront de récupérer toute sorte d’informations depuis un flux Atom ou RSS (titres, liens, dates, auteurs, favicons, etc…)
Je vais essayer dans cet article, en guise d’exemple, de créer un petit agrégateur de flux RSS.

1.Téléchargement et Instalastion de SimplePie
Avant toute chose il vous faudra télécharger SimplePie depuis le site officiel.
Le projet SimplePie est aussi Disponible sur GitHub si vous voulez aporter votre contribution.
Une fois téléchjargé, vous trouverez dans l’archive, un fichier nommé « simplepie.inc », toute la magie de SimplePie se trouve dans ce fichier, nous allons donc dans un premier temps l’uploader sur notre serveur (Il se peut que SimplePie ne fonctionne pas très bien en local, c’est pour cela que nous allons utiliser un « vrai » serveur).
Pour ma part, j’ai créer un dossier « AgregateurSimplePie » pour la demo de SimpelPie dans le répértoire « exemples » de mon site web.
Ensuite, pour bien organiser le tout, j’ai crée un autre dossier « inc » ou je vais mettre la library SimplePie.
Au final ma library se trouvera dans l’adresse http://junksoure.com/exemples/AgregateurSimpelePie/inc/simpelpie.inc
Une fois notre library en place, on peut commancer le developpement de notre petit agrégateur.
2.Inclure la library dans votre projet
Commancez par créer un fichier « index.php » dans le répértoire principal de votre projet, ouvrez le, et mettez la structure minimal d’un fichier HTML comme ceci:
<html> <head> <title>Exemple d'Utilisation de la Library SimplePie</title> </head> <body> </body> </html>
Puis inclure la class et créer une nouvelle instance de l’objet.
<?php require_once('inc/simplepie.inc');
$feed = new SimplePie();
?>
<html>
<head>
...
3.Initialisation de l’objet SimplePie
<?php require_once('inc/simplepie.inc');
// Créer une Nouvelle Instance de l'objet SimplePie
$feed = SimpelPie();
//On prépare la liste des flux
$feed->set_feed_url(array(
'http://JunkSource.com/',
'http://GeekNoise.com/',
'http://Meziamus.com/'
));
//Initialiser Le Processus
$feed->init();
//Récupérer Le Bon Encodage Des Caractères
$feed->handle_content_type();
?>
Jusqu’ici, on n’as fait que préparer SimplePie, et normalement, si tout s’est bien passé, RIEN NE DOIT APPARAITRE dans votre navigateur.
4.Afficher les informations des flux :
On arrive à la partie la plus interessante, celle ou on affiche les différentes informations sur les flux. On vas travailler principalement dans le corps de notre page (dans la balise body) et utiliser quelques fonctions parmis les nombreuses présente dans la library SimplePie.
<body>
<div id="page-wrap">
<h1>Agrégateur SimplePie</h1>
<?php if ($feed->error): //afficher les erreurs s'il y'en a?>
<p><?php echo $feed->error; ?></p>
<?php endif; ?>
<?php foreach ($feed->get_items() as $item): //Récupérer les élements du flux un à un?>
<div class="feed">
<?php $feed = $item->get_feed(); ?>
<h4 style="background:url(<?php echo $feed->get_favicon(); ?>) no-repeat; text-indent: 25px; margin-bottom:10px;"><a href="<?php echo $item->get_permalink(); ?>"><?php echo $item->get_title(); ?></a></h4>
<p class="meta">Source: <a href="<?php echo $feed->get_permalink(); ?>"><?php $feed = $item->get_feed(); echo $feed->get_title(); ?></a> | <?php echo $item->get_date('j M Y - h:m:s'); ?></p>
</div>
<?php endforeach; ?>
</div>
</body>
Vous remarquerez quand dans le code précédent on a utilisé plusieurs méthodes appartenant à l’objet qu’on a crée comme :
get_date(), get_favicon(), get_title(), etc…
il y’en a plein que vous pourrez exploiter, visitez la page de l’API SimplePie pour avoir la liste complete et l’utilisation de chacune.
5.Améliorations
Activer la fontionnalité de cache de SimplePie
Créez nouveau dossier dans le répértoire principale de votre application, renommez-le en « cache ».
Ensuite, juste avant la ligne ($feed->init();), ajoutez les lignes suivante:
//Activer le Cache
$feed->enable_cache(true);
//Fournir le nom du dossier ou sera stocké le cache
$feed->set_cache_location('cache');
//Définir la durée (en seconds) du cache [ici 30 min]
$feed->set_cache_duration(1800);
En plus des plusieurs fonctionalités que vous pourrez tirez de l’API SimplePie, vous pourrez rajouter un peut de style à cette application en profittant des indentificateurs et classes qui y sont présent.
Vos Commentaires(2)
Bonjour,
Pour avoir un avant goût de ce que donne SimplePie, il y a la page de démo que j’ai mis en lien de mon nom. Merci pour cet article.
Bonjour pouvez-vous m’aider a confectionner mon code svp ?