Php с NetBeans: применение нового PhpDoc без фактического объявления - PullRequest
2 голосов
/ 20 января 2011

Есть ли способ применить новый 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()
    }
}

Метод «Дети» теперь будет возвращать объект «SpecializedChildren».Но ради подсказки NetBeans я также обязан переопределить метод «Дети» и дать подсказку с помощью PhpDoc.Есть ли способ дать подсказку NetBeans, сообщая, что базовый метод теперь будет возвращать другой тип без фактического переопределения метода?

1 Ответ

5 голосов
/ 20 января 2011

Я не думаю, что есть простой способ сделать это.Однако вы можете попробовать использовать тег @ method , например,

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

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

    }

Следует помнить, что тег @method следует использовать для намека на магические методы, а не на новые возвращаемые типы методов изродительский класс.

...