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

时间:2011-01-20 00:28:56

标签: 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;
    }
}

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

1 个答案:

答案 0 :(得分:5)

我认为没有一种简单的方法可以做到这一点。但是,您可以尝试使用@method标记,例如

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

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

    }

你应该记住,@ method标签应该用来暗示魔术方法而不是父类的新返回类型的方法。