Ver Mensaje Individual
  #5 (permalink)  
Antiguo 08/12/2009, 17:15
Avatar de destor77
destor77
 
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años, 2 meses
Puntos: 43
Respuesta: FrontController

Hola GatorV,
disculpa pero estoy un poco "bastante" bastante perdido con esto del frontcontrolle y router, buscando por el foro encontre un ejemplo tuyo, asi que mi frontcontroller lo deje asi:
Código php:
Ver original
  1. class Router {
  2.      public function __construct() {}
  3.  
  4.      public function route() {
  5.            $controller = $_GET['controlador'];
  6.            $action = $_GET['accion'];
  7.            echo $_SERVER['PHP_SELF']."<br/>";
  8.            $ubicacion=explode('/',$_SERVER['PHP_SELF']);
  9.            switch($ubicacion[2]){
  10.               case 'admin':
  11.                 $path='admin/';
  12.               break;
  13.               case 'area_cliente';
  14.                  $path='area_clientes/';
  15.               break;
  16.               default:
  17.                 $path='';
  18.               break;
  19.            }
  20.            
  21.            if( empty($controller) ) $controller = 'index';
  22.            if( empty($action) ) $action = 'index';
  23.            else $action = $action ;
  24.            echo "el controlador es: $controller<br/>";
  25.            $controllerLocation = $path . 'controllers/' . $controller . 'Controller.php';
  26.  
  27.            if( file_exists( $controllerLocation ) ) {
  28.                  include_once( $controllerLocation );
  29.            } else {
  30.                  throw new Exception("No se encuentra el controlador $controllerLocation");
  31.            }
  32.  
  33.            if( class_exists( $controller, false ) ) {
  34.                   $cont = new $controller();
  35.            } else {
  36.                   throw new Exception( "Controller Class not found $controller" );
  37.            }
  38.  
  39.            if( method_exits( $cont, $action ) ) {
  40.                   $cont->$action();
  41.            } else {
  42.                    throw new Exception( "Action not callable $action" );
  43.            }
  44.  
  45.            
  46.  
  47.      }
  48. }

pero sigo sin hacerlo andar cuando entro al sitio (localhos/singd/) me sale esto:
Cita:
Fatal error: Class 'ControllerBase' not found in D:\xampp\htdocs\singd\controllers\indexController. php on line 2
después si quiero entrar al admin (localhost/singd/admin) me sale este error:
Cita:
Fatal error: Uncaught exception 'Exception' with message 'No se encuentra el controlador admin/controllers/indexController.php' in D:\xampp\htdocs\singd\libs\FrontController.php:31 Stack trace: #0 D:\xampp\htdocs\singd\admin\index.php(4): Router->route() #1 {main} thrown in D:\xampp\htdocs\singd\libs\FrontController.php on line 31
pero si quiero entrar a area_clientes (localhost/singd/area_clientes) me sale este error:
Cita:
Fatal error: Class 'ControllerBase' not found in D:\xampp\htdocs\singd\area_clientes\controllers\in dexController.php on line 2
la verdad que estoy mas perdido que "turco en la neblina" jeje, si me podrías indicar como se puede solucionar estare muy agradecido.