Завершение кода для частных/защищенных переменных-членов при использовании магии __get()
Как настроить завершение кода для работы с Zend Studio (или любой средой IDE на основе Eclipse) при работе с классом с частными или защищенными переменными-членами БЕЗ прибегания к кучке Getter OR, устанавливающего членские символы как общедоступные.
Например:
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.
Ответы
Ответ 1
Завершение кода для магических методов может быть достигнуто с помощью @property и @method в DocBlock класса (не в Docs).
/**
* @property string bark
*/
class Dog {
/* ... */
}
$Dog = new Dog();
echo $Dog-> // will autocomplete now
Обратите внимание, что нет никакой корреляции между фактическим кодом и аннотацией. Zend Studio покажет все, что вы установили для @property
, независимо от этого свойства. Он также не проверяет, действительно ли доступен волшебный метод.
![Code Completion in Zend Studio with @property annotation]()