Как настроить завершение кода для работы с 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
, независимо от этого свойства. Он также не будет проверять, действительно ли существует волшебный метод.