Lu4*_*Lu4 2 php netbeans phpdoc
有没有办法在没有重新声明方法的情况下应用新的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;
}
}
Run Code Online (Sandbox Code Playgroud)
在以下方式覆盖"CreateChildren"方法之后:
class SpecializedContainer extends GeneralContainer {
protected function CreateChildren() {
return new SpecializedChildren($this);
}
/**
* @return SpecializedChildren
*/
public function Children() {
return parent::Children()
}
}
Run Code Online (Sandbox Code Playgroud)
"Children"方法现在将返回"SpecializedChildren"的对象.但是为了给NetBeans提供一个提示,我也有义务覆盖"Children"方法并使用PhpDoc给它一个提示.有没有办法给NetBeans提示它告诉它基本方法现在将返回其他类型而不实际覆盖该方法?
我不认为有这么简单的方法.但是,您可以尝试使用 @method标签,例如
/**
* @method SpecializedContainer Children()
*/
class SpecializedContainer extends GeneralContainer {
protected function CreateChildren() {
return array();
}
}
Run Code Online (Sandbox Code Playgroud)
您应该记住,@ method标记应该用于暗示魔术方法而不是父类的新返回类型的方法.