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.

4.15. Resolución de Vista

Una vez que Zend Framework tiene el nombre de la plantilla solo queda por determinar la ruta absoluta para el archivo .phtml correspondiente. Esto es llamado también resolución de la plantilla de vista. Las plantillas de vista se resuelven con una clase especial de Zend Framework llamada view resolver.

En ZF3 existen dos decisores de vista listos para usar: TemplatePathStack y TemplateMapResolver. Ambos decisores toman el nombre de la plantilla de vista como entrada y regresa la ruta al archivo de plantilla de vista como salida. El nombre de la plantilla está usualmente compuesto del nombre del módulo seguido por el nombre del controlador y el nombre de la plantilla, como "application/index/about", "application/index/index". Una excepción es "layout/layout" que no incluye el nombre del módulo.

Las configuraciones de los decisores de vista se almacenan dentro de nuestro archivo module.config.php bajo la llave view_manager:

<?php
return [
    //...

    'view_manager' => [
        //...

        'template_map' => [
            'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',
            'application/index/index' => __DIR__ . '/../view/application/index/index.phtml',
            'error/404'               => __DIR__ . '/../view/error/404.phtml',
            'error/index'             => __DIR__ . '/../view/error/index.phtml',
        ],
        'template_path_stack' => [
            __DIR__ . '/../view',
        ],
    ],
];

Como podemos ver las configuraciones del mapa de decisión de plantillas (template map resolver) se almacena bajo la llave template_map. Por defecto, existen varias plantillas de vista "estádares" que se resuelven de esta manera: la plantilla para la página index, la plantilla de diseño (hablaremos sobre esto en Apariencia de la Página y Diseño) y las plantillas de error (hablaremos sobre ellas un poco más luego). Estas páginas estándar se sirven con este tipo de decisor porque es más rápido.

Las configuraciones de la pila de rutas de plantilla (template path stack resolver) se almacenan bajo la llave template_path_stack. Podemos ver que este decisor busca nuestros script de vista en el directorio "view" de nuestro módulo. Esta es la razón por la que solo podemos colocar el archivo about.phtml dentro de esta carpeta y ZF encontrará automáticamente la plantilla.

Ambos decisores tanto el mapa de decisión de plantillas como la pila de rutas de plantillas trabajan en pareja. Primero, el mapa de decisión de plantillas, que es más rápido, intenta encontrar la plantilla de vista en su arreglo de mapa y si la página no se encuentra el decisor de pila de rutas de plantilla se ejecutará.


Top