如何从另一种方法(不是我们正在覆盖的方法)继承 phpdoc

How to inherit phpdoc from another method (not the one we are overwriting)

我在想是否有一种方法可以在相同 and/or 不同 classes 的不同方法上复制(继承)完全相同的 phpdoc。

我知道 inline {@inheritdoc},它只提供从 parent 到它的 child class 的继承(正如人们所期望的那样:)。

但是看看下面的内容,我必须在 3 个不同的地方复制完全相同的描述,2 个方法在同一个 class 中,一个在单独的 class 中(不是继承的,而是启动的). 我想知道是否有一种方法可以解决问题,无需复制粘贴。

class Example
{
    /**
     * here i want to have exactly the same phpdoc,
     * like what i created for getMeSomethingFromTheShelf() in the same class
     */
    public function getMeSomething($id, $option = [])
    {
        return $this->getMeSomethingFromTheShelf($id, $option);
    }

    /**
     * Some description
     * and some more detail about how the $option value will be used
     *
     * @param int $id
     * @param array $option and here some we have some sample
     * @return string
     */
    public function getMeSomethingFromTheShelf($id, $option = [])
    {
    return 'here you go :)';
    }
}

class AnotherClass
{
    /**
     * here also i want to have exactly the same phpdoc,
     * like what i created for Example::getMeSomethingFromTheShelf() in the Example class
     */
    public function fetchSomething($id, $option = [])
    {
        return (new Example)->getMeSomething($id, $option = []);
    }
}

提前感谢您的任何建议:)

{@inheritdoc}是内置的,不支持指定继承源。请使用 @see 标签。

不太可能以相同的方式描述两种方法。如果它是一个代理,或者只是传递数据,描述应该注意这个行为,并且 @see 标签应该将用户引导到接口方法。

我经常使用 @see@link 标签来 link SAPI 文档,或解析代理。也就是说,我也总是尝试包括某种描述,并且总是记录参数和 returns,即使它们是相同的(在查看代码时有帮助)。

小心不要过于依赖 PHPDoc 的快捷方式。