WEB-d Développement Web

PHP, SQL, HTML5, CSS3, Javascript, Mootools, Référencement, SEO, CMS, e-commerce, Apache, Linux, Ubuntu, ...

Documenter correctement son code avec PhpDocumentor

PhpDocumentor permet de générer automatiquement la documentation d'une application PHP, au format HTML ou PDF, à partir des commentaires inclus dans les différents fichiers .php

PhpDocumentor

PhpDocumentor s'installe grâce à Pear. Sur Ubuntu, il suffit donc de :

sudo pear install PhpDocumentor

Pour générer la documentation d'une application, il suffit de taper :

phpdoc -o HTML:Smarty:PHP -d /mon/application/php -t phpdocumentor

où :

Pour pouvoir être analysés correctement par PhpDocumentor, les commentaires doivent être rédigés d'une façon bien précise : chaque élément (fichier, classe, fonction, variable,...) doit être précédé par un "docblock" de la forme suivante :


/**
 * Description courte
 *
 * Description longue
 * (sur plusieurs lignes)
 *
 * @tags
 */

 

Il existe toute une série de tags reconnus par PhpDocumentor. La liste complète est naturellement disponible sur le site de PhpDocumentor. Les tags les plus courants sont présentés dans l'exemple ci-dessous, qui a d'ailleurs servi à générer la documentation visible ci-dessus.


<?php
/**
 * Description courte du fichier
 *
 * Description longue du fichier...
 *
 * PHP version 5
 *
 * @category  Catérogie
 * @package   None
 * @author    Thibault Debatty <thibault.debatty@gmail.com>
 * @copyright 2011 Thibault Debatty
 * @license   http://www.php.net/license/3_01.txt  PHP License 3.01
 * @link      http://www.mon-application.be
 */


/**
 * Description courte de ma fonction
 *
 * @param my_class $param1 Description de param1
 * @param <type>   $param2 Description de param2
 *
 * @return <type>
 */

function myFunction(my_class $param1, $param2)
{
    return $param1->method($param2);
}

/**
 * Description courte de ma classe (une seule ligne)
 *
 * Description longue (plusieurs lignes) de ma classe
 * - Point 1
 * - Point 2
 *
 * @category Catérogie
 * @package  None
 * @author   Thibault Debatty <thibault.debatty@gmail.com>
 * @license  http://www.php.net/license/3_01.txt  PHP License 3.01
 * @link     http://www.mon-application.be
 */

class MyClass
{
    /**
     *
     * @var <type>
     */

    public $attribute1;

    /**
     * Description de method
     *
     * @param <type> $param Description de param
     *
     * @return <type>
     */

    public function method($param)
    {
        return "abc";
    }
}
?>
 

Les commentaires ci-dessous ont été rédigés conformément au standard PEAR. Comme vous pouvez le constater :

Articles similaires