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:
Usuários
users)): ?>
- Nenhum usuário encontrado
users as $user): ?>
-
escape($user->fullname) ?>
(escape($user->email) ?>)
]]>
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.