Example #1
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");
     }
 }
 public static function run(Request $peticion)
 {
     //Session::accesoSinLogin($peticion->getControlador());
     $controlador = $peticion->getControlador() . 'Controller';
     $metodo = $peticion->getMetodo();
     $argumentos = $peticion->getArgumentos();
     $rutaControlador = ROOT . 'controllers' . DS . $controlador . '.php';
     if (file_exists($rutaControlador)) {
         $controlador = new $controlador();
         if (!method_exists($controlador, $metodo)) {
             $metodo = 'index';
         }
         if (count($argumentos) > 0) {
             $controlador->{$metodo}($argumentos);
         } else {
             $controlador->{$metodo}();
         }
     } else {
         throw new Exception("No encontrado");
     }
 }
Example #3
0
 public static function run(Request $peticion)
 {
     $controller = $peticion->getControlador() . 'Controller';
     // Guardamos en una variable el nombre del Controlador
     $rutaController = ROOT . 'controllers' . DS . $controller . '.php';
     // Guardamos en una variable la ruta del Controlador
     $metodo = $peticion->getMetodo();
     // Guardamos en una variable el metodo del Controlador.
     $argumento = $peticion->getArgumentos();
     if (is_readable($rutaController)) {
         // Comprueba si el archivo "$rutaController" existe y es legible.
         require_once $rutaController;
         // Importamos el Controlador.
         $controller = new $controller();
         // Instanciamos una clase del "*Controller"
         if (is_callable(array($controller, $metodo))) {
             // Verifica si puede ser llamado "$metodo" de la clase "$controller".
             // "is_callable(array(CLASE,FUNCION))"
             $metodo = $peticion->getMetodo();
             // En caso afirmativo volvemos a guardar en una variable el metodo del Controlador.
         } else {
             $metodo = 'index';
             // Si no, asignamos el metodo por defecto 'index'.
         }
         if (isset($argumento)) {
             // Comprueba si $peticion->getArgumentos() esta definida y no es NULL.
             call_user_func_array(array($controller, $metodo), $argumento);
             // Llama al metodo "$controller->$metodo()" pasandole como argumento "$peticion->getArgumento()".
         } else {
             call_user_func(array($controller, $metodo));
             // Llama al metodo "$controller->$metodo()" sin pasarle argumentos.
         }
     } else {
         // Si no existe mandamos una excepcion.
         throw new Exception("No encontrado");
     }
 }
Example #4
0
<?php

define('DS', DIRECTORY_SEPARATOR);
define('ROOT', realpath(dirname(__FILE__) . DS));
define('APP_PATH', ROOT . DS . 'application' . DS);
require_once APP_PATH . 'base' . DS . 'Config.php';
require_once APP_PATH . 'base' . DS . 'Request.php';
require_once APP_PATH . 'base' . DS . 'Bootsrap.php';
require_once APP_PATH . 'base' . DS . 'Registro.php';
require_once APP_PATH . 'controllers' . DS . 'Controller.php';
require_once APP_PATH . 'models' . DS . 'Model.php';
require_once APP_PATH . 'views' . DS . 'View.php';
$req = new Request();
echo $req->getControlador() . "<br>";
echo $req->getMetodo() . "<br>";
print_r($req->getArgumentos());