Intereting Posts
Командный сон для паузы в течение 20 секунд, если условие выполнено Почему это возвращает идентификатор ресурса №2? обработка больших массивов с помощью array_diff Невозможно получить комментарии для каждой строки. Необходим новый ввод. Можно ли загрузить фотографию в альбом fanpage без публикации? PHP-мышление ООП: отправка и получение сообщения: я правильно понял? Как печатать многомерные массивы в php Как передать переменную с JavaScript на PHP с помощью jQuery POST Как включить помощника javascript в ErrorHanlder? это json и как заменить значения с помощью php-переменных? Typeahead remote с Laravel 4 – Я работаю над отдельными работами, но не работаю вместе специальные символы в проблеме «file_exists» (php) Проблема норвежских символов Ошибка SOAP-сервера в PHP – добавление функций из класса Ошибка PHP: нельзя использовать объект типа stdClass как массив (проблемы с массивом и объектом)

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() } } 

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

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

      /** * @method SpecializedContainer Children() */ class SpecializedContainer extends GeneralContainer { protected function CreateChildren() { return array(); } } 

    Вы должны помнить, что этот тег @method должен использоваться для подсказки магических методов, а не для новых типов возвращаемых методов из родительского класса.