4.5 Routing
Introducción
El enrutamiento es una técnica que permite reescribir la URL, simplificando su apariencia y favoreciendo que se recuerde con mas naturalidad. Además de mejorar la indexación de las páginas en los buscadores.
Open Populi Application Framework brinda esta funcionalidad a través del controlador frontal que delega este proceso en la clase OP_Router, que es la que se encarga de interpretar las URL's de la petición, buscando coincidencias entre estas y los patrones definidos en las reglas de enrutamiento.
En cuanto se produce una coincidencia, se arma la URL en base a la petición y a la regla de enrutamiento.
Se encuentran definidas un conjunto de reglas por defecto. Estas reglas tienen como objetivo completar una URL con la aplicación, modulo y acción por defecto en el caso de no ser especificadas en la petición. Para que esto funcione se deberá marcar la aplicación, los módulos y las acciones por defecto en la estructura de seguridad(Ver:
Seguridad).
- Ejemplo de Routing sobre las reglas por defecto.
http://intranet.openpopuli.com/ayuntamiento/
Coincidirá con la siguiente ruta:
$router->connect( ":platform",
array(":platform" => $this->platform, ":application" => ':default', ":module" => ':default', ":action" => ':default'));
Tomará la aplicación, modulo y acción por defecto definidos en la estructura de seguridad.
Definiendo Reglas de Enrutamiento
Se podrán extender el conjunto de reglas ya definidas por defecto. Para esto basta con definir las reglas de enrutamiento en el archivo miPlataforma/config/
routes.ini.php- Ejemplo de reglas de enrutamiento personalizadas.
$router->connect( ":platform/lang/:culture",
array(":platform" => OP_PLATFORM, ":application" => ':default', ":module" => ':default', ":action" => ':default'));
$router->connect( "default/los-clientes",
array(":platform" => OP_PLATFORM, ":application" => 'backend', ":module" => 'cliente', ":action" => 'index'));
$router->connect( "miblog",
array(":platform" => OP_PLATFORM, ":application" => 'blog', ":module" => 'post', ":action" => 'index'));
- Paso de variables mediante rutas amigables
Tras la etiqueta
:query podemos introducir un vector asociativo con los parametros que asociaremos medianta la nomenclatura
$numero a la url.
// http://www.midominio.com/permalink/{parameter}/{id}/{page}
$router->connect("permalink/$1/$2/$3", array(":platform" => OP_PLATFORM, ":application" => 'admin', ":module" => 'empresa', ":action" => 'view', ":query"=> array('page'=>'$3', 'id'=>'$2', 'parameter'=>'$1') ));
«««
Internacionalización |
Sesiones de Usuario »»»