Ver Mensaje Individual
  #3 (permalink)  
Antiguo 26/05/2014, 07:36
Avatar de guardarmicorreo
guardarmicorreo
 
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años, 3 meses
Puntos: 84
Respuesta: ¿Cómo utilizar una clase y método con ReflectionClass?

Gracias Italico por tu respuesta, pero estoy experimentando, nada definitivo, no sé ni si estoy en lo correcto con lo que quiero pretender.

De momento este es el código que he confeccionado, para que veas lo que he hecho

Solo muestro el PHP del index.php, que contiene todo lo que necesita un index + spl_autoload_register y el siguiente código para dibujar una barra de navegación
Código PHP:
Ver original
  1. <div id="header">
  2.                 <?php
  3.                 /*
  4.                  * la cabecera
  5.                  */
  6.                 try{
  7.                     $obj=new ReflectionMethod("modules\Head", "paint");
  8.                     echo $obj->invoke(new \modules\Head);
  9.                 } catch (Exception $ex) {
  10.                     echo $ex;
  11.                 }
  12.                 ?>
  13.             </div>

En modules\Head hay lo siguiente
Código PHP:
Ver original
  1. <?php
  2. namespace modules;
  3.  
  4. class Head{
  5.     public function __construct() {}
  6.    
  7.     public function paint(){
  8.         $obj=new \views\Template("navbar");
  9.         return $obj->invoke("navbar");
  10.     }
  11. }

En views\Template hay lo siguiente
Código PHP:
Ver original
  1. <?php
  2. namespace views;
  3.  
  4. class Template{
  5.     public function __construct($envelope) {
  6.        require_once 'html/'.$envelope.'.php';
  7.     }
  8.    
  9.     public function invoke($function, $parameters=null){
  10.         return call_user_func($function, $parameters);
  11.     }
  12. }

Y con eso dibujo una barra de navegación.

Ahora, para presentar al usuario cualquier contenido que solicite y no uno estático, pues necesito llamar a ciegas a una clase, no de manera predefinida, sino dinámica, es decir, que el usuario introduzca variables GET para la URL y con otro try-catch detecto si existe GET, después extraigo todas las variables GET, las introduzco en un array asociativo y los paso como argumento a una clase, en esa clase voy examinando cada valor, si el primer valor corresponde a una clase pues voy pasando argumentos a la subclase de esa primera clase y así consecutivamente hasta llegar a lo que el usuario ha pedido.

Lo mismo haría con POST para el CRUD, con otro try-catch, etc.

Conozco la teoría del MVC, pero no he visto nada práctico que sea fácil de mantener, mucho código suelto es lo que he logrado, eso se puede deber a que soy un programador nefasto o que creo que se pueden hacer las cosas de otra manera, más fácil de hacer y mantener.

No he logrado ver un ejemplo de MVC claro e intuitivo. Sí, podría leer cualquier copia de Codeigniter, Laravel, etc. Pero para alguien como yo que soy tan novato en la programación, pues no me sale a cuentas, sería un martirio y terminaría cansado antes de poder lograr algún avance que me ayude a poder seguir.

Un saludo! :D
__________________
Ayúdame a hacerlo por mi mismo.