# Introdução

Na construção de um website com camadas MVC usando Zendo Framework, os scripts de visualização serão tipicamente apenas um fragmento de HTML pertinente à ação solicitada. Por exemplo, se você tivesse a ação "`/user/list`", você poderia criar um script de vizualização que percorresse os usuários e apresentasse uma lista desordenada:

    <h2>Usuários</h2>
    <ul>
        <?php if (!count($this->users)): ?>
        <li>Nenhum usuário encontrado</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>

Uma vez que este é apenas um fragmento de HTML, esta página não é válida; está faltando uma declaração DOCTYPE e as tags de abertura de HTML e BODY. A questão é: onde elas serão criadas?

Nas versões anteriores do Zend Framework, desenvolvedores muitas vezes criaram scripts de vizualização para "cabeçalho" e "rodapé" que continham esses artefatos, e então seriam renderizados em cada script de vizualização. Enquanto essa metodologia funcionou, ela também gerou dificuldades de refatoração mais tarde, ou para criar conteúdos compostos pela chamada de múltiplas ações.

O padrão de projeto Two Step View explica muitos dos problemas apresentados. Nesse padrão, a vizualização "aplicação" é criada primeiro, depois introduzida na visualização "página" e depois é apresentada ao cliente. A visualização página pode ser pensada como um site-modelo ou layout, e teria elementos em comum utilizados em várias páginas.

Dentro do Zend Framework, o Zend_Layout implementa o padrão Two Step View.