Con el tipo de ruta Literal la coincidencia de la ruta se alcanza solo cuando tenemos una coincidencia exacta de la cadena de ruta contra la ruta URL. Usamos generalmente el tipo Literal para las URLs que deben ser cortas y fáciles de recordar, como '/about' o '/news'.
Abajo se presenta la definición de una ruta llamada "home". La ruta "home" se corresponde
usualmente a la acción "index" del IndexController
y apunta a la página Home
de nuestro sitio web:
'home' => [
'type' => Literal::class,
'options' => [
'route' => '/',
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'index',
],
],
],
La línea 2 de este ejemplo dice que el tipo de ruta Literal. El algoritmo exacto
de comparación de ruta se implementa en la clase Zend\Rotuter\Http\Literal
.
La línea 4 define la cadena de ruta que se comparará contra la ruta URL (la barra '/' significa que la parte-URL está vacía). Cuando tenemos un tipo de ruta literal la coincidencia se alcanza solo cuando la ruta coincide exactamente. Por ejemplo, si tenemos la URL "http://localhost/" o "http://localhost", estas coincidirán con la ruta '/'.
Las líneas 5-8 definen los defaults
, estos son los parámetros regresados por el router
si la ruta coincide. Los parámetros controller
y action
definen el controlador
y el método de acción del controlador que será ejecutado. Además, podemos definir
otros parámetros aquí si lo necesitamos.
Como otro ejemplo de un tipo de ruta Literal, vamos a agregar la ruta '/about' para la página About que hemos creado antes en la sección Vistas del capítulo Modelo-Vista-Controlador. Para crear un ruta, agregamos las siguientes líneas después de la definición de la ruta "home" dentro de nuestro archivo module.config.php:
'about' => [
'type' => Literal::class,
'options' => [
'route' => '/about',
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'about',
],
],
],
Si ahora abrimos la URL "http://localhost/about" en nuestro navegador web debemos ver la página About.