【问题标题】:How can I create a PHPDoc for magic properties outside of the class definition?如何为类定义之外的魔法属性创建 PHPDoc?
【发布时间】: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 中为动态分配的属性工作。最终使用了一个局部变量并使用@var instad 进行类型提示。
  • 这只是魔术不好的一个例子。

标签: php slim phpdoc


【解决方案1】:

文档块中不需要 $app->translator。 它应该是这样的:

/** @var \Fortress\MessageTranslator your_possible_comments */

/** @type \Fortress\MessageTranslator your_possible_comments */

Link to the documentation.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-29
    • 2015-02-04
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    • 2021-12-17
    相关资源
    最近更新 更多