有没有办法在没有重新声明方法的情况下应用新的PhpDoc,例如我有一个类:
class GeneralContainer {
private $children;
public function __construct() {
$this->children = $this->CreateChildren();
}
protected function CreateChildren() {
return new GeneralChildren($this);
}
/**
* @return GeneralChildren
*/
public function Children() {
return $this->children;
}
}
以下列方式覆盖“CreateChildren”方法后:
class SpecializedContainer extends GeneralContainer {
protected function CreateChildren() {
return new SpecializedChildren($this);
}
/**
* @return SpecializedChildren
*/
public function Children() {
return parent::Children()
}
}
“Children”方法现在将返回“SpecializedChildren”的对象。但是为了给NetBeans提示,我还有义务覆盖“Children”方法并使用PhpDoc给它一个提示。有没有办法给NetBeans提示它告诉它基本方法现在将返回其他类型而不实际覆盖该方法?
答案 0 :(得分:5)
我认为没有一种简单的方法可以做到这一点。但是,您可以尝试使用@method标记,例如
/**
* @method SpecializedContainer Children()
*/
class SpecializedContainer extends GeneralContainer {
protected function CreateChildren() {
return array();
}
}
你应该记住,@ method标签应该用来暗示魔术方法而不是父类的新返回类型的方法。