如何在PHPDoc中记录多个变量声明


How to document multiple variable declarations in PHPDoc

我使用简短的语法来定义类的成员变量,所以不是

private $a;
private $b;
private $c;

我使用

private
    $a,
    $b,
    $c;

现在我使用PHPDoc来告诉IDE每个成员的类型,如下所示:

/** @var classA */
private $a;
/** @var classB */
private $b;
/** @var classC */
private $c;

然而,这不适用于简短的语法:

private
    /** @var classA */
    $a,
    /** @var classB */
    $b,
    /** @var classC */
    $c;

我做错了什么?

不是你想听到的答案,但你做不到。PHPDoc并没有你想要的那么聪明,尽管没有它地球上的生命几乎是不可能的。

此外,当人们停止遵循PSR约定时,事情通常会变得一团糟,比如每个语句声明多个属性。所以,如果你不喜欢普遍接受的方式,就不要重新发明轮子——坚持下去,你很快就会克服这个问题;)

Srsly…

实际上,phpDocumentor 2.x确实支持复合声明,尽管使用了一个文档块而不是多个--https://docs.phpdoc.org/3.0/guide/references/phpdoc/tags/var.html#var

请注意,如果您没有得到您期望的文档结果,那么它可能是一个错误(就像这里显示的那样——phpDoc@var for compound语句没有正确显示)。

如果您正在查看类似的类型;例如:

/** @var string */
private $stringVariable;
/** @var string */
private $stringVariable2;
/** @var string */
private $anotherVariable;
/** @var string */
private $andMoreStringTypes;

当然,您可以对每个规则使用/** @var string */,但也可以使用DocBlock模板,如下所示:

/**#@+
 * @var string
 */
private $stringVariable;
private $stringVariable2;
private $anotherVariable;
private $andMoreStringTypes;
/**#@-*/