Código de finalización para las variables miembro privadas / protegidas durante el uso __get mágica ()

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

Pregunta

¿Cómo hacer la terminación del código de configuración que permite trabajar en Zend Studio (o cualquier IDE basado en Eclipse) cuando se trabaja con una clase que tiene variables miembro privadas o protegidas sin tener que recurrir a un montón de Getter de O ajustar el miembro de vars como públicos.

Por ejemplo:

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

Solución

Código de finalización de Métodos mágicos se puede lograr mediante el uso de la @ propiedad y @method anotación en el DocBlock de la clase (no en el Método Docs).

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

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

Tenga en cuenta que no existe una correlación entre el código actual y la anotación. Zend Studio mostrará lo que estableció para @property, independientemente de esta propiedad existente. Asimismo, no comprobará si hay en realidad es un método mágico disponible.

Código de finalización de Zend Studio con la anotación @property

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top