Документирование групп констант классов с помощью phpDocumentor - PullRequest
4 голосов
/ 11 ноября 2011

Допустим, у меня есть метод с параметром, допустимые значения которого объявлены как константы класса (например, PGSQL_ASSOC / PGSQL_NUM / PGSQL_BOTH). И есть другой метод с похожим параметром, использующий другой набор констант класса. Есть ли способ описать phpDocumentor, что каждый набор констант относится к логической группе альтернатив? Было бы полезно документировать их в группах и иметь возможность ссылаться на конкретные группы в документации по методу. Использование шаблонов docblock не сокращает его, так как краткое описание шаблона игнорируется (добавляя бесполезный беспорядок), в то время как длинное описание шаблона добавляется к описанию, специфичному для констант, что приводит к некоторой обратной формулировке (например, "BAR_MODE_1 делает то и то. Режимы работы для Foo :: bar () ", а не« Режимы работы для Foo :: bar (): BAR_MODE_1 делает то-то и то-то. ").

Пример:

class Foo {

    // this group of constants are valid modes for the bar() method
    const BAR_MODE_1 = 1;
    const BAR_MODE_2 = 2;
    const BAR_MODE_3 = 3;

    /**
     * @param int see Foo::BAR_MODE_* constants
     */
    public function bar($mode) { ... }

    // this group of constants are valid modes for the baz() method
    const BAZ_MODE_1 = 1;
    const BAZ_MODE_2 = 2;
    const BAZ_MODE_3 = 3;

    /**
     * @param int see Foo::BAZ_MODE_* constants
     */
    public function baz($mode) { ... }

}

Ответы [ 2 ]

7 голосов
/ 25 ноября 2011

Другим стилем может быть использование PHPDocumentor Шаблоны DocBlock

/**#@+
* This comment applies to each in the block
*
* @var varType 
*/
protected $_var1 = 1;
protected $_var2 = 2;
/**#@-*/

см .: http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_phpDocumentor.howto.pkg.html#basics.docblock

2 голосов
/ 11 ноября 2011

Первое, что приходит мне в голову, это тег @see - он отображает ссылку на документацию для элемента.

/**
 * @param int 
 * @see Foo::BAR_MODE_* constants
 */
public function bar($mode) { ... }

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

...