Enrutamiento y redirecciones
De KumbiaPHP Framework Wiki
Contenido |
[editar] Enrutamiento y Redirecciones
Kumbia proporciona un poderoso sistema de redireccionamiento que permite cambiar el flujo de la ejecución de una aplicación entre los controladores MVC.
Kumbia permite el re-direccionamiento de 2 formas: estático y dinámico.
[editar] ¿Por qué re-direccionamiento?
Necesitamos cambiar el flujo de la ejecución entre controladores, básicamente
Ejemplos:
- El usuario trata de acceder a una acción que no existe y queremos enviarla a una válida.
- El usuario de la aplicación no tiene privilegios para continuar ejecutando determinada acción y debemos enviarlo a otra
[editar] Estático
El direccionamiento estático ocurre en el archivo forms/config/routes.ini en donde le decimos al framework cuándo debe redireccionar de acuerdo a los controladores y/o acciones solicitadas. El archivo config/routes.ini se ve así:
; Usa este archivo para definir el enrutamiento estático entre ; controladores y sus acciones ; ; Un controlador se puede enrutar a otro controlador utilizando '*' como ; comodín así: ; controlador1/accion1/valor_id1 = controlador2/accion2/valor_id2 ; ; Ej: ; Enrutar cualquier petición a posts/adicionar a posts/insertar/* ; posts/adicionar/* = posts/insertar/* ; ; Enrutar cualquier petición a cualquier controlador en la acción ; adicionar a posts/adicionar/* ; */adicionar/* = posts/insertar/* [routes] prueba/ruta1/* = prueba/ruta2/* prueba/ruta2/* = prueba/ruta3/*
Cualquier política definida en este archivo tiene menos relevancia sobre un direccionamiento dinámico.
[editar] Dinámico
Ocurre cuando en ejecución necesitamos cambiar el flujo normal y pasar a otro controlador o a otra acción.
El principal método para hacer esto es usar el método route_to:
[editar] route_to([params: valor])
Recibe los parámetros con nombre:
- controller: A que controlador se va a redireccionar
- action: A que acción se va a redireccionar
- id: Id de la redirección
return $this->route_to("controller: clientes", "action: consultar", "id:1");
No todos los parámetros son obligatorios sólo el que sea necesario.
Aviso: En la 0.5 en adelante es mejor usar Router::route_to
return Router::route_to("controller: clientes", "action: consultar", "id:1");

