Rapport exercice 5 |
---|
Objectifs |
---|
Comme le fait de rajouter des cd directement dans le document xml est pénible, un formulaire (traité par php) pourra mettre à jour la liste. Cette liste est à usage personnelle, seul son auteur est censé rajouter des éléments. Toutefois, comme c'est un exercice STAF, n'importe quel utilisateur peut venir rajouter des cd. Cela me permet également de faire un essai de genèse de xml avec php. J'ai modifié les permissions pour que n'importe quel utilisateur puisse rajouter des items.
Un troisième objectif consiste aussi à voir plusieurs méthodes pour afficher du XML dans un browser : avec XSl et cocoon ainsi qu'avec un parsing php. Je testerais les deux méthodes : XSL pour l'affichage simple et le parsing php pour essayer un petit moteur de recherche (permettant de retrouver un cd grâce au nom de l'interprète).
Réalisation, technique et embûches |
---|
Le formulaire est fait en html, et c'est un script php (modifié à partir de celui trouvé chez Olivier Clavel) qui va faire le traitement. Ce script va ouvrir le fichier XML, et remplacer la dernière ligne par une nouvelle fiche, puis refermer cette page (avec le tag parent qui est "liste" en l'occurence). On utilise la fonction StripSlashes(); qui élimine les slashs rajoutés lors de l'envoi du formulaire. On utilise les fonctions php classiques (fopen();...) et un pointeur pour écrire dans le document XML.
En ce qui concerne le petit moteur de recherche, j'ai réutilisé et modifié un des scripts de Vivian (montré en cours) que j'ai modifié en fonction de mon dtd et de l'affichage que je voulais obtenir en html. L'affichage est le même que pour la liste, sauf qu'ici on n'affiche que le cd de l'artiste demandé. J'ai du pour cela utiliser une expression régulière avec php : eregi();, j'ai trouvé les information nécessaire sur http://www.php.net/manual/en/function.ereg.php. Cette expression régulière a été améliorée : avec des wild cards (*), l'utilisateur peut ainsi fournir seulement des parties du nom de l'interprète et la recherche se fait toujours. Le plus dur aura été de parser correctement le xml, des warnings m'ont vraiment freinés (merci à Vivian pour son aide).
Au niveau des outils, je n'ai utilisé que EMacs...
Critiques et limites |
---|
En ce qui concerne le formulaire, il est trop simple et l'interaction avec l'utilisateur est finalement assez pauvre : on ne peut que rajouter des cd, et pas modifier une fiche ou en effacer. Il faudrait prévoir plus de souplesses dans les interactions possibles avec l'utlisateur... (ce n'était pas le but de cet exercice, j'ai juste voulu tester la genèse de xml par php). Je me pose également la question de la maintenance/réutilisation de mes données (les fiches). A posteriori, il me semble que j'aurais du générer des fichiers séparés pour chaque fiche (des fichiers txt qui se seraient intégrés dans un fichier xml); cela aurait permis un accès plus facile pour réutiliser l'information... Finalement, il m'apparait que ce genre de dispositif serait plus facile et plus intéressant à mettre en oeuvre avec un véritable langage de base de données relationnelles (mySQL par exemple) : cela procurerait une plus grande flexibilité/souplesse avec php (quant à la gestion des fiches : effacer, modifier...). XML me semble plus difficile d'accès par rapport à mysql pour ces traitements. Enfin, le moteur de recherche n'est évidemment pas complet, on pourrait imaginer des recherches sur le titre de l'album, la date, le producteur; il suffirait d'écrire d'autres fichiers php parsant différemment le document xml.
Bibliographie |
---|