Traduction du billet
'Two new articles published' de php-tools:
La semaine dernière, deux nouveaux articles de Stéphane sont parus: le premier est une introduction à
XUL, publié dans le
numéro 1.05 du magazine allemand
"Java Magazin". Le XUL est un langage de type XML qui permet de modeler des interfaces utilisateur pour Mozilla. Si le sujet vous intéresse, et que vous avez encore un petit peu de mal avec l'allemand (c'est facile, pourtant

), Stéphane a aussi publié une librairie dans
PEAR,
XML_XUL, avec laquelle on peut créer des applications XUL chez soi avec PHP. Même sans l'article, il y a une série d'exemples fournis avec qui permettent de débuter facilement.
Le second article est sur la librairie
XML_Serializer de Stéphane, publié dans le
dernier numéro du
International PHP Magazine. Le XML_Serializer est une librairie très puissante qui permet de sérialiser presque n'importe-quelle structure PHP en XML et inversement. Un bon exemple est qu'on peut sérialiser un objet complet en XML, et le récupérer tel quel plus tard - ou l'utiliser tout simplement pour lire n'importe-quel document XML sans avoir à le parser soi-même.
Dans ma fanpage pour le jeu
Etherlords, les
Ether Planes, j'ai utilisé le XML_Serializer pour lire les données des cartes, qui étaient entièrement en XML. Le petit bout de code ci-dessous faisait la plupart du boulot:
// inclure le Unserializer
include_once( 'XML/Unserializer.php' );
// créer l'objet - on veut aussi avoir les attributs
// des balises, donc on définit l'option au démarrage
$unserializer = new XML_Unserializer( array( 'parseAttributes' => true ) );
// désérialisation des données XML
$unserializer->unserialize( 'maps/etherlords.xml', true );
// et voilà un joli tableau contenant les données
// du ficher XML. Simple, non?
$data = $unserializer->getUnserializedData();
Le XML_Serializer a aussi une interface SimpleXML, qui permet d'accéder aux données XML un peu comme avec la nouvelle extension PHP (dans certaines limites, bien sûr, vu que certaines choses ne sont pas possibles avec PHP4) - j'adore cette librairie, vu que je ne fais pas partie de ces gens qui adorent écrire des parseurs XML