A free and open-source book on ZF3 for beginners

Translation into this language is not yet finished. You can help this project by translating the chapters and contributing your changes.

5.5. Tipo de Ruta Literal

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.


Top