Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/06/2014, 05:33
Avatar de guardarmicorreo
guardarmicorreo
 
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: en php también podemos llamar clases desde métodos?

Recientemente he aprendido a utilizar esto para hacer lo que yo llamo (no sé si tiene un nombre específico) una llamada ciega a clases.

Lo aprendí cuando me enseñaron a crear un front controller.

Por ejemplo.

Supongamos que queremos hacer un front-controller donde el usuario, al introducir un parámetro en la barra de direcciones instancie directamente a una clase.

Para esto debemos recoger ese parámetro, que es el nombre de una clase.

Y el código podría ser algo así

Código PHP:
Ver original
  1. $class=$_GET['class']
  2.  
  3. $obj=(new FrontController())->instance($class);

En el front-controller habría un código tal que así

Código PHP:
Ver original
  1. class FrontController{
  2.  
  3. function __construct(){
  4.  
  5. }
  6.  
  7. function instance($class){
  8. include $class'.php';
  9. //retorna la pagina principal
  10.  
  11. return (new $class())->view();
  12. }
  13. }

De manera que si el usuario introduce index.php?class=home imprimirá el home.

Evidentemente faltan detalles como los namespaces, autocarga de clases con spl_autoload_register, modificar el htaccess para que el usuario no tenga necesidad de indicar index.php y tampoco class= y que la url solo admita parámetros con "/", etc.

Pero en esencia esa es la idea, instanciar ciegamente clases.
__________________
Ayúdame a hacerlo por mi mismo.