使用NetBeans的Php:在没有实际声明的情况下应用新的PhpDoc

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提示它告诉它基本方法现在将返回其他类型而不实际覆盖该方法?

Mar*_*cin 5

我不认为有这么简单的方法.但是,您可以尝试使用 @method标签,例如

     /**
     * @method SpecializedContainer Children() 
     */
    class SpecializedContainer extends GeneralContainer {

        protected function CreateChildren() {
            return array();
        }

    }
Run Code Online (Sandbox Code Playgroud)

您应该记住,@ method标记应该用于暗示魔术方法而不是父类的新返回类型的方法.