Ver Mensaje Individual
  #9 (permalink)  
Antiguo 19/03/2014, 03:32
Avatar de marlanga
marlanga
 
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 10 meses
Puntos: 206
Respuesta: Urls Amigables

Casualmente acabo de poner un mensaje en
http://www.forosdelweb.com/f18/tutor...1/#post4580628
donde digo cómo resolver tu problema.

Necesitarás crear un enrutador para usar en el fichero base de tu pseudo MVC. Todas las llamadas irán al fichero base, por ejemplo, request.php.
Y éste, o una clase auxiliar enrutadora, tiene que saber leer la URL con $SERVER["request_uri"] y saber a qué controlador, o fichero PHP llamar o incluir.

Para ello has de crear una clase router.php, que mediante expresiones regulares, sepa "leer" la request_uri y enrutar tu aplicación PHP correctamente.

Por ejemplo, yo hago el "mapeo" de urls así:

Código PHP:
Ver original
  1. $mapa_url=array(
  2.     "index"=>array(
  3.         "patron"=>""
  4.         "controlador"=>"ProductoControlador"
  5.         "accion"=>"getIndex"
  6.     ),
  7.     "detalle_producto"=>array(
  8.         "patron"=>"detalle/:slug:"
  9.         "controlador"=>"ProductoControlador"
  10.         "accion"=>"getDetalle"
  11.     )
  12. );
Luego tengo una clase Router.php que usando ese array asociativo, y $SERVER["request_uri"], sabe extraer a qué controlador y a qué metodo de ese controlador llamar, usando un patrón sencillo.

Por ejemplo, la url "www.mipagina.com" llamaría al controlador ProductoControlador, y a su método "getIndex", que no espera argumentos.
La url www.mipagina.com/detalle/tele-sony.html llamaría al controlador ProductoControlador, método "getDetalle" con el argumento $slug="tele-sony.html".

Última edición por marlanga; 19/03/2014 a las 03:43