La complétion de code pour les variables membres privées / protégées lors de l'utilisation de magie __get ()
-
26-09-2019 - |
Question
Comment puis-je l'achèvement du code de configuration pour travailler sur Zend Studio (ou tout IDE basé sur Eclipse) lorsque vous travaillez avec une classe qui a des variables membres privées ou protégées sans avoir recours à un bouquet de mise de Getter ou le membre vars comme public.
Par exemple:
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.
La solution
La complétion de code des méthodes magiques peut être réalisé en utilisant le @ propriété et @method annotation dans le DocBlock de la classe (et non dans le Doc Method).
/**
* @property string bark
*/
class Dog {
/* ... */
}
$Dog = new Dog();
echo $Dog-> // will autocomplete now
Notez qu'il n'y a pas de corrélation entre le code réel et l'annotation. Zend Studio affichera tout ce que vous définissez pour @property
, quelle que soit cette propriété existante. Il vérifiera également pas s'il est en fait une méthode magique disponible.