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

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

Например:

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 Ответ

24 голосов
/ 28 сентября 2010

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

/**
 * @property string bark
 */
class Dog {
    /* ... */
}

$Dog = new Dog();
echo $Dog-> // will autocomplete now

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

Code Completion in Zend Studio with @property annotation

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...