Как правильно писать PHPDocs для констант?
у меня есть этот код:
/**
* Days to parse
* @var int
*/
const DAYS_TO_PARSE = 10;
...
Я не думаю, что использование @var
правильно для константы, и я не вижу никаких @constant
тег PHPDoc. Как правильно это сделать?
6 ответов:
чтобы получить их в phpDoc, использовать:
@const THING
обычная конструкция:
@const[ant] label [description]
@const
и не правильный ответ.
- это не часть устаревших документов phpDocumentor:http://manual.phpdoc.org/HTMLframesConverter/default/
- это не часть текущих документов phpDocumentor:http://www.phpdoc.org/docs/latest/index.html
- он не указан в списке тегов в Википедии:http://en.wikipedia.org/wiki/PHPDoc#Tags
- это не перечисленные в PHP-FIG черновике PSR: https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc.md#7-tags
единственное "официальное" место, где он указан, это 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'; }