Как правильно писать PHPDocs для констант?


у меня есть этот код:

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

Я не думаю, что использование @var правильно для константы, и я не вижу никаких @constant тег PHPDoc. Как правильно это сделать?

6 57

6 ответов:

чтобы получить их в phpDoc, использовать:

@const THING

обычная конструкция:

@const[ant] label [description]

@const и не правильный ответ.

единственное "официальное" место, где он указан, это phpdoc.de, но спецификация там только когда-либо доходила до 1.0 beta, и сайт также включает теги, такие как @brother и @sister, который я никогда не видел раньше, поэтому общее доверие к этому сайту несколько уменьшилось; -) де-факто стандарт всегда был phpDoc.org.

короче, даже если какой-то неофициальный стандарт упоминает об этом, если генераторы документации не поддерживают его, то его не стоит использовать.

@var правильно на данный момент, и как только PSR (последняя ссылка в приведенном выше списке) выходит из проекта, и является основой для которой phpDocumentor, Doxygen, APIGen и другие понимают PHPDoc, то @type было бы правильно, который является преемником @var.

PHP-FIG предлагает использовать @var для констант.

7.22. @var

можно использовать @var тег для документирования "типа" следующего "Структурные Элементы":

  • константы как класс, так и в мировом масштабе.
  • свойства
  • переменные, как глобальные, так и локальные рамки

синтаксис

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

Я использую Netbeans. Он будет анализировать phpDoc для глобальных констант и констант классов, когда используется этот формат:

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

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

следующее предложение уважение синтаксис официальной документации:

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

}

нет необходимости вводить константы, так как тип константы всегда скалярный или массив, известный при объявлении и не может изменяться.

@const также не является частью стандарта PHPDoc. PHP-FIG предлагает @var но это не используется PHPDoc и не добавляет никакой информации, которую вы уже не можете вывести из самого объявления.

поэтому для удобства чтения я рекомендую просто использовать простой PHPDoc docblock для документирования вашего константы:

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