我使用简短的语法来定义类的成员变量
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;
我做错了什么?
3条答案
按热度按时间uqcuzwp81#
这不是你想听到的答案,而是你做不到的。PHPDoc并不像你想的那样聪明,尽管没有它地球上的生命几乎不可能存在。
此外,当人们不再遵循PSR conventions时,事情通常会变得一团糟,比如每个语句声明多个属性。所以,如果你不喜欢普遍接受的方法,不要重新发明轮子--坚持下去,你很快就会克服这个问题;)
对不起...
dfuffjeb2#
实际上,phpDocumentor 2.x确实支持复合声明,尽管使用一个docblock而不是多个docblock--https://docs.phpdoc.org/3.0/guide/references/phpdoc/tags/var.html#var
请注意,如果没有得到预期的doc结果,可能是一个bug(如此处所示--phpDoc @var for compound statement isn't displayed correctly)。
btqmn9zl3#
如果你在寻找相似的类型;例如:
当然,您可以对每个规则使用
/** @var string */
-但也可以使用DocBlock模板,如下所示: