|
|
@@ -0,0 +1,57 @@
|
|
|
+<?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>
|