如何在类定义之外为魔术属性创建PHPDoc?

ale*_*exw 7 php phpdoc slim

PHPDoc提供了@var标记,它甚至可以用于在类之外声明的变量.

但是,如果我将变量定义为对象的魔术成员,这似乎不起作用:

/** @var $app->translator \Fortress\MessageTranslator */
$app->translator = new \Fortress\MessageTranslator();
Run Code Online (Sandbox Code Playgroud)

哪里$app修身,支持通过神奇的getter和setter方法任意财产分配对象.

我知道我可以Slim通过@property标签将它添加到自身,但是Slim每次创建新属性时我都需要更改核心代码.

PHPDoc是否支持这种动态属性记录?

one*_*ror -1

您不需要在文档块中使用$app->translator 。它应该看起来像这样:

/** @var \Fortress\MessageTranslator your_possible_comments */
Run Code Online (Sandbox Code Playgroud)

或者

/** @type \Fortress\MessageTranslator your_possible_comments */
Run Code Online (Sandbox Code Playgroud)

文档链接