TigerZF
🌐Español

Capítulo 6. Primeros pasos con Zend_Layout

6.1. Introducción

Al construir un sitio web usando las capas MVC de Zend Framework, sus scripts de vista normalmente serán solo fragmentos de HTML relativos a la acción solicitada. Por ejemplo, si tuviera la acción "/user/list", podría crear un script de vista que recorra los usuarios y presente una lista sin ordenar:

<h2>Users</h2>
<ul>
    <?php if (!count($this->users)): ?>
    <li>No users found</li>
    <?php else: ?>
    <?php foreach ($this->users as $user): ?>
    <li>
        <?php echo $this->escape($user->fullname) ?>
        (<?php echo $this->escape($user->email) ?>)
    </li>
    <?php endforeach ?>
    <?php endif ?>
</ul>

Dado que esto es solo un fragmento de HTML, no es una página válida; le faltan una declaración DOCTYPE, y las etiquetas de apertura HTML y BODY. Entonces, la pregunta es, ¿dónde se crearán estas?

En las primeras versiones de Zend Framework, los desarrolladores a menudo creaban scripts de vista de "cabecera" y "pie de página" que contenían estos elementos, y luego los renderizaban en cada script de vista. Aunque esta metodología funcionaba, también dificultaba la refactorización posterior, o la construcción de contenido compuesto llamando a múltiples acciones.

El patrón de diseño Two Step View resuelve muchos de los problemas presentados. En este patrón, la vista de "aplicación" se crea primero, y luego se inyecta en la vista de "página", que se presenta entonces al cliente. La vista de página puede considerarse como la plantilla o layout de todo el sitio, y contendría elementos comunes usados a través de varias páginas.

Dentro de Zend Framework, Zend_Layout implementa el patrón Two Step View.