96 votes

Quelle est la manière correcte d'écrire des PHPDocs pour les constantes ?

J'ai ce code :

/**
 * Days to parse
 * @var int
 */
const DAYS_TO_PARSE = 10;
...

Je ne pense pas qu'utiliser @var est correcte pour une constante et je ne vois aucune @constant Tag PHPDoc. Quelle est la bonne façon de procéder ?

170voto

user2983026 Points 1541

Le PHP-FIG suggère d'utiliser @var pour les constantes.

7.22. @var

Vous pouvez utiliser le @var pour documenter le "Type" des éléments suivants "Éléments structurels" :

  • Constantes, à la fois de classe et globales
  • Propriétés
  • Variables, à portée globale et locale

Syntaxe

@var ["Type"] [element_name] [<description>]

132voto

GaryJ Points 425

@const es no la bonne réponse.

Le seul endroit "officiel" où il est répertorié est phpdoc.de, mais la spécification n'est parvenue qu'à la version 1.0beta, et le site comprend également des balises telles que @brother y @sister que je n'ai jamais vu utilisé auparavant, donc la confiance globale dans ce site est quelque peu diminuée ;-) Le standard de facto standard a toujours été phpDoc.org.

En bref, même si une norme non officielle le mentionne, si les générateurs de documentation ne le prennent pas en charge, il n'y a pas lieu de l'utiliser.

@var est correct pour l'instant, et une fois que le PSR (dernier lien dans la liste ci-dessus) sera sorti de l'état de projet, et sera la base sur laquelle phpDocumentor, Doxygen, APIGen et d'autres comprennent PHPDoc, alors @type serait correcte qui est le successeur de @var .

8voto

Yogarine Points 144

Il n'y a pas besoin d'annoter le type des constantes, puisque le type est toujours :

  • soit un scalaire ou un tableau
  • connu au moment de la déclaration
  • immuable

@const ne fait pas non plus partie de la norme PHPDoc. PHP-FIG suggère @var mais cela n'est pas soutenu par PHPDoc et n'ajoute aucune information que vous ne pouvez pas déjà déduire de la déclaration elle-même.

Par conséquent, pour des raisons de lisibilité, je recommande d'utiliser un simple docblock PHPDoc pour documenter vos constantes :

class Foo
{
    /**
     * This is a constant.
     */
    const BAR = 'bar';
}

Il décrira la constante lorsque vous générerez les PHPDocs tout en gardant les commentaires propres et lisibles.

4voto

Sonny Points 3453

J'utilise Netbeans. Il analysera phpDoc pour les constantes globales et de classe lorsque ce format est utilisé :

/** @const Global constant description */
define('MY_CONST', 10);

class MyClass
{
    /** @const Class constant description */
    const MY_CONST = 10;
}

3voto

Kwadz Points 59

Les éléments suivants proposition respecte la syntaxe de la documentation officielle :

class Foo
{
    const
        /**
         * @var string Should contain a description
         */
        MY_CONST1 = "1",
        /**
         * @var string Should contain a description
         */
        MY_CONST2 = "2";

}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X