Conclusão de código para variáveis ​​de membro privadas/protegidas ao usar magic __get()

StackOverflow https://stackoverflow.com/questions/3814733

Pergunta

Como configuro o preenchimento de código para funcionar no Zend Studio (ou qualquer IDE baseado em Eclipse) ao trabalhar com uma classe que possui variáveis ​​de membro privadas ou protegidas SEM recorrer a um monte de Getter OU definir os vars de membro como públicos.

Por exemplo:

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.
Foi útil?

Solução

A conclusão de código para métodos mágicos pode ser obtida usando o @propriedade e @método anotação no DocBlock da classe (não no Method Docs).

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

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

Observe que não há correlação entre o código real e a anotação.Zend Studio mostrará tudo o que você definir @property, independentemente desta propriedade existir.Também não verificará se realmente existe um método mágico disponível.

Code Completion in Zend Studio with @property annotation

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top