| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24362 -->
- <!-- Reviewed: no -->
- <sect1 id="learning.layout.intro">
- <title>Introdução</title>
- <para>
- Na construção de um website com camadas <acronym>MVC</acronym> usando Zendo Framework,
- os scripts de visualização serão tipicamente apenas um fragmento de <acronym>HTML</acronym>
- pertinente à ação solicitada. Por exemplo, se você tivesse a ação
- "<filename>/user/list</filename>", você poderia criar um script de vizualização que
- percorresse os usuários e apresentasse uma lista desordenada:
- </para>
- <programlisting language="php"><![CDATA[
- <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>
- ]]></programlisting>
- <para>
- Uma vez que este é apenas um fragmento de <acronym>HTML</acronym>, esta página não é válida;
- está faltando uma declaração <acronym>DOCTYPE</acronym> e as tags de abertura de
- <acronym>HTML</acronym> e <acronym>BODY</acronym>. A questão é: onde elas serão criadas?
- </para>
- <para>
- 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.
- </para>
- <para>
- O padrão de projeto <ulink url="http://martinfowler.com/eaaCatalog/twoStepView.html">Two
- Step View</ulink> 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.
- </para>
- <para>
- Dentro do Zend Framework, o <classname>Zend_Layout</classname> implementa o padrão Two Step
- View.
- </para>
- </sect1>
|