08 mars 2011

ATOMWriter : Création d'un flux ATOM en PHP

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