为phpdocumentor2记录一个生成器的方法的最佳方法是什么。
我认为@return
并不适用于yield
,但我似乎找不到合适的替代方案。
这只是等待phpdoc赶上来的问题吗?
答案 0 :(得分:23)
我选择了@return Generator|SomeObject[]
,其中SomeObject
就是屈服了。
PhpStorm也可以很好地处理这个问题,因为它现在通常提示Generator
方法,并且在迭代时提示SomeObject
方法。
(不过,我更喜欢原生@yield
。)
答案 1 :(得分:8)
第一次调用生成器函数时,是一个对象 返回内部Generator类。
严格地说,@return Generator
是正确的,虽然不是超级描述你在迭代生成器时可以得到的东西。
答案 2 :(得分:2)
出于实际目的,产生值意味着返回值数组。因此,最有益的是将an array of specific types指定为返回值。
正如评论中所指出的那样there are caveats,但在我的脑海中,完成工作类型的重量超过了它们。因此,从可用性的角度来看,我不会在this will be resolved in the upstream之前看到更好的方法。