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

Joh*_*ohn 5 php phpdoc phpstorm

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

private $a;
private $b;
private $c;
Run Code Online (Sandbox Code Playgroud)

我用

private
    $a,
    $b,
    $c;
Run Code Online (Sandbox Code Playgroud)

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

/** @var classA */
private $a;
/** @var classB */
private $b;
/** @var classC */
private $c;
Run Code Online (Sandbox Code Playgroud)

但是,这不适用于简短语法:

private
    /** @var classA */
    $a,
    /** @var classB */
    $b,
    /** @var classC */
    $c;
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Ian*_*hek 5

不是你想听到的答案,而是你做不到的。PHPDoc 并不像您希望的那样聪明,尽管没有它,地球上的生活几乎是不可能的。

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

老实…


ash*_*azg 5

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

请注意,如果您没有得到预期的 doc 结果,则可能是一个错误(就像这里显示的那个——复合语句的 phpDoc @var 未正确显示)。