如何从另一种方法(不是我们正在覆盖的方法)继承 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 的快捷方式。
我在想是否有一种方法可以在相同 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 的快捷方式。