Créer un fil de syndication avec Symfony en...5 minutes ! [439 mots]
Posté le 15 juin 2007 à 12:01 | Vu 533 fois |
0 commentaire | Tags:
RSS, syndication
Prérequis
- avoir créé une application web basée sur le framework PHP symfony
- avoir créé dans votre application web un module symfony nommé post (avec la table associée)
N.B.: j'utilise le serveur PHP MAMP sur Mac OS X
La création du fil en 8 étapes
- ajouter le lien vers le fil dans l'en-tête de votre page en ajoutant au contenu de la balise HTML
head) ce bout de code PHP :
echo auto_discovery_link_tag('rss', 'feed/articles') - installer le plugin symfony nommé sfFeed puis vider le cache de votre application en tapant ces lignes de commande à la racine de votre site web symfony:
$/Applications/MAMP/bin/php5/bin/php symfony plugin-install http://plugins.symfony-project.com/sfFeedPlugin$/Applications/MAMP/bin/php5/bin/php symfony cc
- créer le module symfony nommé feed en tapant cette ligne de commande (toujours à la racine de votre site web symfony):
$/Applications/MAMP/bin/php5/bin/php symfony init-module frontend feed - ajouter l'action qui génèrera le fil en ouvrant la classe /apps/frontend/modules/feed/actions/action.class.php (générée par l'action précédente !) et en y copiant la méthode PHP suivante :
public function executeArticles(){$c = new Criteria();$c->addDescendingOrderByColumn(PostPeer::CREATED_AT);$c->setLimit(sfConfig::get('app_feed_max'));$posts = PostPeer::doSelect($c);$feed = sfFeed::newInstance('rss201rev2');// channel$feed->setTitle('Articles parus sur naudjf.com');$feed->setLink('@homepage');$feed->setDescription('Une liste des derniers articles parus sur naudjf.com.');// items$feed->setFeedItemsRouteName('@post');$feed->setItems($posts);$this->feed = $feed;}
- externaliser, dans un fichier de configuration, la valeur maximale du nombre d'articles à ajouter au fil. Cette valeur est la constante
app_feed_maxutilisée ci-dessus. Cette constante sera définie dans le fichier /apps/frontend/config/app.yml de cette manière :
all:
feed:
max: 10 - indiquer que le type de sortie (vues) des actions du module nommé feed ne sera pas du texte HTML , comme c'est le cas par défaut, mais du XML de type RSS. Pour cela, on doit créer un fichier de configuration des vues view.yml dans le répertoire /apps/frontend/modules/feed/config/ et y ajouter les lignes :
all:
has_layout: off
template: feed - créer la vue de sortie :
- on crée un fichier nommé feedSuccess.php dans le répertoire /apps/frontend/modules/feed/templates.
- on y écrit la ligne de code PHP:
echo $feed->getFeed()
- visualiser le flux. Que vous utilisiez ou non une terminaison en
.htmlpour vos URLs, vous pourrez attaquer le fil créé via :- http://localhost:8888/feed/articles.html
- ou bien http://localhost:8888/feed/articles
Voilà, c'est fini !
Autres articles:
- article précédent : Définir un terme en restant sémantique
- article suivant : Rendre votre statut Skype accessible sur votre site web