Completamento del codice per le variabili private / protette membri quando si utilizza la magia __get ()

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

Domanda

Come completamento Ho codice di installazione di lavorare su Zend Studio (o qualsiasi IDE basato su Eclipse) quando si lavora con una classe che ha variabili membro private o protetti senza ricorrere a un gruppo di Getter di o impostando il membro vars come pubblico.

Ad esempio:

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.
È stato utile?

Soluzione

Completamento del codice per i metodi di Magic può essere ottenuto utilizzando il @ immobili e @method annotazione nei DocBlock della classe (non nel metodo Docs).

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

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

Si noti che non v'è alcuna correlazione tra il codice vero e l'annotazione. Zend Studio vi mostrerà tutto ciò che si imposta per @property, a prescindere da questa proprietà esistente. Sarà anche non verifica se v'è in realtà un metodo magico disponibili.

Completamento del codice in Zend Studio con @property annotazione

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top