记录(phpdoc)生成器的最佳方法(产生的方法)

Posted

技术标签:

【中文标题】记录(phpdoc)生成器的最佳方法(产生的方法)【英文标题】:Best way to document (phpdoc) generators (methods that yield) 【发布时间】:2015-07-16 23:17:26 【问题描述】:

对于 phpdocumentor2 来说,记录生成器的方法的最佳方法是什么。

我不认为 @return 真的适用于 yield,但我似乎找不到任何合适的替代方案。

只是等待phpdoc赶上来的问题吗?

【问题讨论】:

恕我直言@return 是合适的,因为它表示您从生成器返回的内容。 目前还没有指定的方法来做到这一点。你是对的,@return 肯定是不正确的。最有可能的语法是@yield V@return Generator<V>,也许还可以指定K、S 和R。另见github.com/phpDocumentor/fig-standards/issues/5 @NikiC 您的回复确实应该作为答案发布。 【参考方案1】:

From the PHP Manual:

第一次调用生成器函数时, 返回内部生成器类。

所以严格来说,@return Generator 是正确的,虽然不是超级描述您在迭代生成器时可以期望返回的内容。

【讨论】:

【参考方案2】:

我选择了@return Generator|SomeObject[],其中SomeObject 是产生的东西。

PhpStorm 也能很好地处理这个问题,因为它现在通常提示 Generator 方法,而在迭代时它会提示 SomeObject 方法。

(不过,我更喜欢原生的@yield。)

【讨论】:

编辑提示:Netbeans 只需要@return 中的SomeObject(或\SomeObject)来提示SomeObject 的方法。 PhpStorm 在类型末尾需要额外的 [] (SomeObject[])。所以我认为最好的选择是像@Robbert 写的那样写:@return Generator|\SomeObject[] 从 PHP 7 开始,Generator->getReturn() 怎么样? 这将更难暗示。你有什么建议? 这是一个非常聪明的解决方案! 这应该是标记的答案。真的很有帮助。谢谢。

以上是关于记录(phpdoc)生成器的最佳方法(产生的方法)的主要内容,如果未能解决你的问题,请参考以下文章

PHPDoc:用可变数量的参数记录函数

phpDoc 有没有办法将对象数组记录为参数?

什么是 PHPDoc Eclipse 多类型:以及如何使用它?

如何使用 PHPDoc 对 Callable 的参数进行类型提示?

PHPDoc 或类型提示类作为方法的参数

为常量编写 PHPDocs 的正确方法是啥?