mardi, janvier 25 2005, 00:17
Dotclear, analyse de l'assistant d'installation
Par Guillaume Lelarge - Développement - Lien permanent
Ce document n'a pas pour but de donner les étapes pour installer DotClear. Il existe pour cela d'autres ressources sur le web. Non, le but de ce document est de plonger dans le code qui anime ce logiciel. Pourquoi l'analyser ? J'ai toujours entendu dire qu'Olivier Meunier est un formidable codeur... autant le vérifier soi-même. Et puis, j'ai besoin de me replonger un peu dans du code. Ça me change un peu de la traduction et ce n'est pas un mal.
Commençons par dire qu'il n'usurpe pas du tout sa réputation (même si j'aurais pris des conventions de codage un peu plus strict). Ceci étant fait, passons aux choses sérieuses.
Tout d'abord, je me demandais si Olivier utilisait un système de template. En effet, il est conseillé de séparer forme et fond. En ce qui concerne l'assistant d'installation, ce n'est pas le cas. Le code XHTML est complètement imbriqué dans le code PHP. En haut du script, un require dirname(FILE).'/__top.php'; amène les en-têtes du standard XHTML avec encodage dépendant de la configuration. En bas du script, l'équivalent pour la fin de page se nomme __bottom.php.
Comme il n'utilise pas de template mais qu'il fait usage d'un grand nombre de formulaires dans l'assistant, il a créé une classe form (lib.form.php) lui permettant d'ajouter facilement une liste de sélection ou un ensemble de boutons radio, voire même un simple champ texte. L'avantage est de clarifier le fichier exécuté. Un simple appel de fonction permet d'ajouter un élément du formulaire avec quatre ou cinq caractèristiques (id, taille, taille max, valeur par défaut, ordre de tabulation, etc.). Les listes déroulantes sont créées à partir d'un élément de type array, moyen très élégant si les informations proviennent d'une base de données ou d'un fichier (type CSV par exemple).
Un autre point qui m'impressionne dans son assistant est la liste de points de vérifications effectués ou d'actions réalisés. Là aussi, il utilise une classe (class.checklist.php). Après l'avoir instancié, la fonction addItem permet d'ajouter des tests à effectuer. Après quelques ajouts, nous pouvons demander le code HTML représentant tous les tests, réussis et en échec (avec les images) puis de nous donner le résultat final.
Tous les écrans de l'assistant d'installation fonctionnent ainsi :
test si le formulaire a déjà été rempli
si oui,
vérification des arguments donnés, récupérés via la session php (pour la base de données, tentative de connexion ou de création des tables)
si la vérification est positive, un simpleheader ('location: fonction_suivant.php')permet d'accèder à la fenêtre suivante de l'assistant
si non,
affichage du formulaire
Bref, c'est simple, c'est clair, c'est propre. Les fichiers sont petits, plutôt bien codés, très facile à comprendre. Olivier n'usurpe vraiment pas sa réputation. Sans parler des feuilles de style très jolies... un artiste en plus 
un commentaire
Super simple, je le recomenderais. Celui de wordpress est aussi tres simple. C'est cde que jutilies pour mon site d'anime.