Documenter son code PHP avec doxygen
Posted on 16 July 2014 in Dev • 2 min read
Je cherchais hier un moyen de générer une belle doc PHP, à partir de mes fichiers sources. Je connaissais quelques outils de la sorte (OcamlDoc, Sphinx pour Python, JavaDoc etc.) mais je n’avais jamais regardé ça en détails.
Du coup, je suis tombé sur
Doxygen, qui supporte une très
grande variété de langages, est utilisé par beaucoup de scripts (dont
des très gros comme Drupal) et était largement suffisant pour mes
besoins. Il mange vos sources et génère de belles documentations
des pages de doc lisibles,
en HTML, LaTeX, CHM et autres.
J’ai pas trouvé de guides ultra rapides pour démarrer (ok, j’ai pas vraiment cherché non plus) donc je liste ici les 3 commandes de base, pour avoir une doc en 5 minutes chrono.
Pour commencer, il faut faire doxygen -g .doxygen
dans le
répertoire du projet pour générer un fichier de configuration (option
-g
) nommé .doxygen
. Voici quelques
paramètres utiles à modifier:
PROJECT_NAME
, mettre le nom de votre projet.- Je voulais générer uniquement une doc HTML, et tout mettre dans un
dossier doc. J’ai donc mis
OUTPUT_DIRECTORY
à"doc/"
, puisHTML_OUTPUT
à.
(pour que la doc HTML aille dansdoc/
) et enfinGENERATE_LATEX
àNO
pour ne pas générer de doc en LaTeX. - Enfin, je voulais traiter tous les fichiers de mon projet, donc j’ai
mis l’option
RECURSIVE
àYES
.
Une fois tout ceci fait, il faut que vos commentaires soient au bon format pour que doxygen les lise. Un exemple est disponible ici.
En gros, il faut à chaque fois redoubler les commentaires
/** … */
pour que doxygen les parse. Les premières
lignes de texte dans chaque cas sont un petit paragraphe descriptif. Il
est possible d’ajouter un plus long paragraphe après avoir sauté une
ligne. Doxygen utilise ensuite des tags @quelquechose
pour
noter les paramètres, les valeurs de retours, les copyrights etc.
Important, ne pas oublier de dire à doxygen d’utiliser le fichier
courant avec un @file
dans le commentaire global du fichier.
Une fois tous vos fichiers taggés correctement, lancer doxygen
.doxygen
depuis la racine de votre projet pour générer la
doc. Vous obtiendrez une belle documentation comme
ça (ok, il y a
encore du boulot sur celle-ci…).