Conclusão de código para variáveis de membro privadas/protegidas ao usar magic __get()
-
26-09-2019 - |
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.
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.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow