Завершение кода для частных / защищенных переменных-членов при использовании магии __get ()

Как настроить завершение кода для работы с Zend Studio (или любой средой IDE на основе Eclipse) при работе с классом, который имеет частные или защищенные переменные-члены, БЕЗ прибегая к связыванию элемента Getter's, устанавливающего членские символы как общедоступные.

Например:

class Dog { protected $bark = 'woof!'; public function __get($key) { if (isset($this->$key)) { return $this->$key; } } } $Dog = new Dog(); echo $Dog->bark; // <-- I want the IDE to "know" that bark is a property of Dog. 

Завершение кода для магических методов может быть достигнуто с помощью @property и @method аннотации в DocBlock класса (не в Docs).

 /** * @property string bark */ class Dog { /* ... */ } $Dog = new Dog(); echo $Dog-> // will autocomplete now 

Обратите внимание, что нет никакой корреляции между фактическим кодом и аннотацией. Zend Studio покажет все, что вы установили для @property , независимо от этого свойства. Он также не будет проверять, действительно ли существует волшебный метод.

Завершение кода в Zend Studio с аннотацией @property