我使用短语法来定义类的成员变量,而不是
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;
我做错了什么?
答案 0 :(得分:4)
不是你想听到的答案,但你不能这样做。 PHPDoc并不像你想要的那样聪明,尽管如果没有它,地球上的生命几乎是不可能的。
此外,当人们停止关注PSR conventions时,事情通常会开始变得混乱,例如declaring multiple properties per statement。所以,不要重新发明轮子,如果你不喜欢普遍接受的方式 - 坚持下去,你很快就会克服它;)
... Srsly
答案 1 :(得分:4)
实际上,phpDocumentor 2.x确实支持复合声明,但使用一个docblock而不是多个 - http://phpdoc.org/docs/latest/references/phpdoc/tags/var.html
请注意,如果您没有获得预期的文档结果,则可能是错误(如此处显示的错误 - phpDoc @var for compound statement isn't displayed correctly)。
答案 2 :(得分:1)
如果你正在寻找类似的类型;例如:
/** @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;
/**#@-*/