Dotclear, analyse de l'assistant d'installation

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 simple header ('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 :)

Commentaires

1. Le mardi, janvier 22 2008, 01:37 par anime

Super simple, je le recomenderais. Celui de wordpress est aussi tres simple. C'est cde que jutilies pour mon site d'anime.

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

La discussion continue ailleurs

1. Le dimanche, octobre 23 2005, 12:38 par Crayon Blanc

DotClear ou MovableType ?

J’ai longuement hésité entre les deux applications pour réaliser ce blog et c’est finalement la simplicité d’installation de DotClear qui a guidé mon choix. Ce que j’ai apprécié chez DotClear : C’est en français, La...

2. Le dimanche, octobre 23 2005, 12:39 par Crayon Blanc

DotClear ou MovableType ?

J’ai longuement hésité entre les Dotclear et MT pour réaliser mon blog et c’est finalement la simplicité d’installation de DotClear qui a guidé mon choix. C’est en français, La...

Fil des commentaires de ce billet