【发布时间】:2015-09-08 15:58:12
【问题描述】:
PHPDoc 提供了@var tag,即使对于在类之外声明的变量也应该有效。
但是,如果我将变量定义为对象的魔术成员,这似乎不起作用:
/** @var $app->translator \Fortress\MessageTranslator */
$app->translator = new \Fortress\MessageTranslator();
其中$app 是一个Slim 对象,它支持通过magic setter 和getter 进行任意属性分配。
我知道我可以通过@property 标记将其添加到Slim 本身,但是每次创建新属性时我都需要更改核心Slim 代码。
PHPDoc 是否支持这种动态属性记录?
【问题讨论】:
-
您是否尝试在文档部分删除
$app->translator?无论如何this could help you. -
你解决过这个问题吗?
-
Andy,我已经开始使用 Slim 3,它使用显式 DI 容器。因此,类似于@onerror 的答案中显示的内容应该 起作用。上面的链接中给出了类似的答案。
-
@alexw 谢谢,我只是想让类型提示在我的 IDE 中为动态分配的属性工作。最终使用了一个局部变量并使用
@varinstad 进行类型提示。 -
这只是魔术不好的一个例子。