ATOM est un format XML conçu pour la syndication de contenu périodique. Voici une petite classe PHP sans prétention qui permet de produire rapidement un flux ATOM. L'usage de cette classe permettra d'éviter les erreurs de syntaxe XML, le flux produit est créé à l'aide la classe XMLWriter qui permet de produire du XML intègre. La classe permet de construire facilement un flux de données à l'aide de quelques méthodes.
La classe supporte également le format OpenSearch ce qui permet d'enrichir le flux avec des informations non prévues dans la norme ATOM, notamment la pagination.
Démonstration
Voici un petit bout de code qui permet de créer un flux avec deux informations.
$xmlWriter = new XMLWriter(); $xmlWriter->openUri('php://output'); $xmlWriter->setIndent(true); $f = new ATOMWriter($xmlWriter, true); $f->startFeed('urn:example:data') ->writeStartIndex(1) ->writeItemsPerPage(10) ->writeTotalResults(100) ->writeTitle('Index of /') ->writeLink('http://exemple.com/', 'text/xml'); $f->startEntry('urn:example:data-1') ->writeTitle('Data 1') ->writeLink('/1.xml', 'text/xml') ->writeLink('/1.txt', 'text/plain') ->writeContent('Une information', 'text', 'fr') ->writeCategory('term', '#scheme') ->endEntry(); $f->flush(); $f->startEntry('urn:example:data-2') ->writeTitle('Data 2') ->writeLink('2.txt', 'text/plain') ->writeContent('Une autre information', 'text', 'fr') ->endEntry(); $f->flush(); $f->endFeed(); $f->flush();
Téléchargement et code source
Le code source est disponible sur GitHub : http://github.com/touv/ATOMWriter
Ou, on peut directement l'installer avec PEAR en s'abonnant au Channel Respear :
% pear channel-discover pear.respear.net % pear install respear/ATOMWriter
Cette classe associée à la classe JSONWritter est très pratique pour présenter à moindre coût des listes de résultats à travers une architecture RESTful.
RépondreSupprimerMerci !
https://github.com/touv/JSONWriter/
https://github.com/touv/REST_Server/
Et y-a-t-il un lien avec la classe Pxxo_Widget_Atom ?
RépondreSupprimer@François aucun.
RépondreSupprimerHum hum... J'ai essayé d'installé avec Pear, et ça ne passe pas:
RépondreSupprimer$ usr/bin/pear install pxxo/ATOMWriter
No releases available for package "pear.pxxo.net/ATOMWriter"
install failed
Et quand je vais voir http://pear.pxxo.net/get/ je ne trouve pas ATOMWriter.
c'est corrigé tiens moi au courant
RépondreSupprimer