Example #1
0
 public static function run(Request $peticion)
 {
     $modulo = $peticion->getModulo();
     $controller = $peticion->getControlador() . 'Controller';
     $metodo = $peticion->getMetodo();
     $args = $peticion->getArgs();
     if ($modulo) {
         $rutaModulo = ROOT . 'controllers' . DS . $modulo . 'Controller.php';
         if (is_readable($rutaModulo)) {
             require_once $rutaModulo;
             $rutaControlador = ROOT . 'modules' . DS . $modulo . DS . 'controllers' . DS . $controller . '.php';
         } else {
             throw new Exception('Error de base de modulo');
         }
     } else {
         $rutaControlador = ROOT . 'controllers' . DS . $controller . '.php';
     }
     if (is_readable($rutaControlador)) {
         require_once $rutaControlador;
         $controller = new $controller();
         if (is_callable(array($controller, $metodo))) {
             $metodo = $peticion->getMetodo();
         } else {
             $metodo = 'index';
         }
         if (isset($args)) {
             call_user_func_array(array($controller, $metodo), $args);
         } else {
             call_user_func(array($controller, $metodo));
         }
     } else {
         throw new Exception('no encontrado');
     }
 }
Example #2
0
 public static function run(Request $peticion)
 {
     $modulo = $peticion->getModulo();
     $controller0 = $peticion->getControlador();
     $controller = $controller0 . 'Controller';
     $metodo = $peticion->getMetodo();
     $args = $peticion->getArgs();
     //throw new Exception($modulo.' '.$controller0.' '.$metodo);
     if ($modulo == false) {
         /*
                     if($controller0 == false){
                         $folder = 'index';
                     }*/
         $folder = $peticion->getFolder($controller0);
     } else {
         $folder = $peticion->getFolder($modulo);
     }
     //throw new Exception($folder);
     //si existe modulo entonces cargar el controlador del modulo
     if ($modulo) {
         $rutaModulo = ROOT . 'src' . DS . $folder . DS . '_modules' . DS . $modulo . DS . 'controllers' . DS . $controller . '.php';
         //throw new Exception($rutaModulo);
         if (is_readable($rutaModulo)) {
             require_once $rutaModulo;
             $rutaControlador = ROOT . 'src' . DS . $folder . DS . '_modules' . DS . $modulo . DS . 'controllers' . DS . $controller . '.php';
         } else {
             throw new Exception('Error de base de modulo');
         }
     } else {
         $rutaControlador = ROOT . 'src' . DS . $folder . DS . 'controllers' . DS . $controller . '.php';
     }
     //throw new Exception($rutaControlador);
     //si la ruta del controlador se puede leer, entonces se crea el controlador
     if (is_readable($rutaControlador)) {
         require_once $rutaControlador;
         //throw new Exception($rutaControlador . ' - ' . $controller);
         //Crea un nuevo objeto controllador,
         $controller = new $controller();
         //se llama al metodo del controllador
         if (is_callable(array($controller, $metodo))) {
             $metodo = $peticion->getMetodo();
         } else {
             //si no hay ningun metodo se llama all metodo index
             $metodo = 'index';
         }
         // si hay argumentos entonces se llama al metodo con sus argumentos // PHP function: call_user_func
         if (isset($args)) {
             call_user_func_array(array($controller, $metodo), $args);
         } else {
             call_user_func(array($controller, $metodo));
         }
     } else {
         //no se encuentra el controllador..
         throw new Exception('no encontrado');
     }
 }
Example #3
0
 public static function run(Request $peticion)
 {
     $modulo = $peticion->getModulo();
     $controller = $peticion->getControlador() . 'Controller';
     $rutaControlador = ROOT . 'controllers' . DS . $controller . '.php';
     $metodo = $peticion->getMetodo();
     $args = $peticion->getArgumentos();
     if ($modulo) {
         $rutaModulo = ROOT . 'controllers' . DS . $modulo . 'Controller.php';
         // comprueba si hay un controlador base.
         //el proposito del controlador base es que proporcione codigo para el modulo completo.
         //Los controladores que se pongan en el modulo heredan del controlador base.
         if (is_readable($rutaModulo)) {
             //comprobamos que la ruta es valida
             require_once $rutaModulo;
             //cuando usamos modulos buscan los controladores del modulo
             $rutaControlador = ROOT . 'modules' . DS . $modulo . DS . 'controllers' . DS . $controller . '.php';
         } else {
             // si no valido tiramos una excepcion
             throw new Exception('Error de base de modulo');
         }
     } else {
         // si no existe modulo la ruta controlador es:
         $rutaControlador = ROOT . 'controllers' . DS . $controller . '.php';
     }
     if (is_readable($rutaControlador)) {
         //nos aseguramos que existe el archivo y es accesible
         require_once $rutaControlador;
         $controller = new $controller();
         if (is_callable(array($controller, $metodo))) {
             //is_callable — Verificar que los contenidos de una variable puedan ser llamados como una función
             $metodo = $peticion->getMetodo();
         } else {
             $metodo = 'index';
         }
         if (isset($args)) {
             call_user_func(array($controller, $metodo), $args);
             //Llama a la llamada de retorno dada por el primer parámetro callback
             //y pasa los parámetros restantes como argumentos.
         } else {
             call_user_func(array($controller, $metodo));
         }
     } else {
         throw new Exception("No encontrado");
     }
 }