Muchas veces queremos convertir una cadena que corresponde al nombre simbólico de una clase en una referencia a esa clase. Este problema es resuelto mediante mecanismos de reflexión que casi todos los lenguajes de alto nivel implementan. En php a partir de la versión 5 también tenemos este mecanismo, veamos lo con un ejemplo.
Obtenemos una instancia de la clase ReflectionClass pasándole como parámetro la clase de la que queremos obtener la instancia:
$ref = new ReflectionClass("miClase");
Y ahora obtenemos la instancia de la clase mediante el método newInstanceArgs pasando le como parametro un array con las parametros del cosntructor de la clase miClase:
Y ya esta, cualquier clase puede ser instanciada mediante este mecanismo, siempre y cuando dicha clase implemente la interfaz Reflector:
class MiClase implements Reflector{
public function __toString(){ } public static function export(){}
}
Con este sencillo mécanismo podemos programar potentes soluciones para nuestras aplicaciones. Y recordar quien diga el PHP es una mierda es probablemente un inepto.