PHP文档泛型类型声明

PHP文档泛型类型声明,php,phpdoc,Php,Phpdoc,我正在开发一个库,它使用phpDocumentor规范来确定使用反射的类型系统。但是,我找不到有关泛型类型声明的任何信息 是否有任何方法可以指定泛型类型声明 例如:是否有任何规范(正在进行中)规定了以下内容: /** * @template <T extends Base> */ class Collection { /** * @return Iterator<T> */ function get_iterator(); }

我正在开发一个库,它使用phpDocumentor规范来确定使用反射的类型系统。但是,我找不到有关泛型类型声明的任何信息

是否有任何方法可以指定泛型类型声明

例如:是否有任何规范(正在进行中)规定了以下内容:

/**
 * @template <T extends Base>
 */
class Collection {

    /**
     * @return Iterator<T>
     */
    function get_iterator();

}
/**
 * @template {Base} T
 */
/**
 * @return Iterator {Iterator<T>}
 */
/**
*@模板
*/
类集合{
/**
*@return迭代器
*/
函数get_iterator();
}

注意上面的代码只是一个示例,说明了泛型类型声明的含义。我不希望这与集合和迭代器有任何关系。

显然有人对对象专门化的相关主题感兴趣,因为这是:

泛型=集合类型“”

编辑:正如杰克在下面所说的,尽管有一个明确的期望,即在标准化之前,他们会以一种或另一种形式返回

然而,它并没有提供一种将类定义为泛型的方法,并且PSR-5已经被放弃了很长一段时间。事实上的标准,phpDocumentor

如果您想非正式地标记泛型,最好编写自己的语法(受类似于或的语法启发),同时小心避免任何可能会使phpDocumentor混淆的内容,例如:

/**
 * @template <T extends Base>
 */
class Collection {

    /**
     * @return Iterator<T>
     */
    function get_iterator();

}
/**
 * @template {Base} T
 */
/**
 * @return Iterator {Iterator<T>}
 */
/**
*@template{Base}T
*/
/**
*@return迭代器{Iterator}
*/

如果你想正式地做这件事,你需要切换到另一个文档系统,比如。

你可能想看看《诗篇》项目

它支持文档中的泛型,以及更多。它也被Symfony的DB ORM,doctrine使用


它支持Emacs、Phpstorm/Intellij、vim和visualstudio

PHP没有泛型吗?你从哪里得到这个?这看起来有点像你想要的
抽象类集合实现\Iterator{}
?@NDM我知道PHP不支持它。这并不意味着它不能在phpDocumentor或任何派生中得到支持。这就是我的问题所在。@NDM因为你不理解这个问题,并不意味着它不清楚。如果得到批准,这可能是下一代php文档:@JackWilsdon谢谢,我已经更新了答案来说明这一点