|
|
@@ -0,0 +1,120 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!-- EN-Revision: 20106 -->
|
|
|
+<!-- Reviewed: no -->
|
|
|
+<sect1 id="learning.quickstart.intro">
|
|
|
+ <title>Introdução ao Zend Framework e ao MVC</title>
|
|
|
+
|
|
|
+ <sect2 id="learning.quickstart.intro.zf">
|
|
|
+ <title>Zend Framework</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Zend Framework é um framework para aplicações Web orientado a objetos e de código aberto
|
|
|
+ para <acronym>PHP</acronym> 5. Zend Framework é geralmente chamado de "biblioteca de
|
|
|
+ componentes", porque tem muitos componentes fracamente acoplados que você pode usar de
|
|
|
+ forma mais ou menos independente. Mas o Zend Framework também fornece uma avançada
|
|
|
+ implementação Model-View-Controller (<acronym>MVC</acronym>) que pode ser usada para
|
|
|
+ estabelecer uma estrutura básica para seus aplicativos Zend Framework. Uma lista
|
|
|
+ completa dos componentes do Zend Framework, juntamente com uma breve descrição pode ser
|
|
|
+ encontrada na <ulink url="http://framework.zend.com/about/components">visão geral dos
|
|
|
+ componentes</ulink>. Este Início Rápido irá apresentá-lo a alguns dos componentes do
|
|
|
+ Zend Framework mais comumente usados, incluindo <classname>Zend_Controller</classname>,
|
|
|
+ <classname>Zend_Layout</classname>, <classname>Zend_Config</classname>,
|
|
|
+ <classname>Zend_Db</classname>, <classname>Zend_Db_Table</classname>,
|
|
|
+ <classname>Zend_Registry</classname> juntamente com alguns assistentes de visualização.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Usando esses componentes, vamos construir um simples aplicativo de livro de visitas
|
|
|
+ movido a banco de dados em poucos minutos. O código fonte completo para esta aplicação
|
|
|
+ está disponível nos seguintes arquivos:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <itemizedlist>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <ulink
|
|
|
+ url="http://framework.zend.com/demos/ZendFrameworkQuickstart.zip">zip</ulink>
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <ulink
|
|
|
+ url="http://framework.zend.com/demos/ZendFrameworkQuickstart.tar.gz">tar.gz</ulink>
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ </itemizedlist>
|
|
|
+ </sect2>
|
|
|
+
|
|
|
+ <sect2 id="learning.quickstart.intro.mvc">
|
|
|
+ <title>Model-View-Controller</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Então o que é exatamente este padrão <acronym>MVC</acronym> que todos estão falando, e
|
|
|
+ por que você deveria se preocupar? <acronym>MVC</acronym> é muito mais do que apenas uma
|
|
|
+ sigla de três letras (<acronym>TLA</acronym>), que você pode sacar sempre que quiser
|
|
|
+ parecer esperto, tornou-se parte de uma norma nos projetos de aplicações Web modernas. E
|
|
|
+ por uma boa razão. A maioria do código de aplicações Web está sob uma das três
|
|
|
+ categorias seguintes: apresentação, lógica de negócios e acesso aos dados. Nos modelos
|
|
|
+ do padrão <acronym>MVC</acronym> esta separação relaciona-se bem. O resultado final é
|
|
|
+ que seu código de apresentação pode ser consolidado em uma parte de sua aplicação com
|
|
|
+ sua lógica de negócio em outra parte e seu código de acesso aos dados também em outra.
|
|
|
+ Muitos desenvolvedores descobriram que essa separação bem definida é indispensável para
|
|
|
+ manter seus códigos organizados, especialmente quando mais do que um desenvolvedor está
|
|
|
+ trabalhando em uma mesma aplicação.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <note>
|
|
|
+ <title>Mais Informações</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Vamos decompor o padrão e dar um olhada nas peças individuais:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ <inlinegraphic width="321" scale="100" align="center" valign="middle"
|
|
|
+ fileref="figures/learning.quickstart.intro.mvc.png" format="PNG" />
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <itemizedlist>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>Model</emphasis> - Esta é a parte de sua aplicação que define sua
|
|
|
+ funcionalidade básica por trás de um conjunto de abstrações. Rotinas de
|
|
|
+ acesso a dados e alguma lógica de negócio podem ser definidos no modelo.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>View</emphasis> - Apresentações definem exatamente o que será
|
|
|
+ apresentado ao usuário. Geralmente os controladores passam os dados para
|
|
|
+ cada apresentação interpretá-los em algum formato. Apresentações também
|
|
|
+ coletam frequentemente os dados do usuário. É aqui que você provavelmente
|
|
|
+ encontrará a marcação <acronym>HTML</acronym> nas suas aplicações
|
|
|
+ <acronym>MVC</acronym>.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>Controller</emphasis> - Controladores vinculam todo o padrão em um
|
|
|
+ conjunto. Eles manipulam modelos, decidem qual apresentação será exibida
|
|
|
+ baseados em solicitações do usuário e em outros fatores, repassam os dados
|
|
|
+ que cada apresentação necessita, ou transfere completamente o controle para
|
|
|
+ outro controlador. A maioria dos especialistas em <acronym>MVC</acronym>
|
|
|
+ recomendam <ulink
|
|
|
+ url="http://weblog.jamisbuck.org/2006/10/18/skinny-controller-fat-model">manter
|
|
|
+ os controladores o mais simples possível</ulink>.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ </itemizedlist>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Claro que há <ulink url="http://ootips.org/mvc-pattern.html">mais a ser dito</ulink>
|
|
|
+ sobre esse padrão fundamental, mas isso deve dar-lhe conhecimento suficiente para
|
|
|
+ entender a aplicação de livro de visitas que vamos construir.
|
|
|
+ </para>
|
|
|
+ </note>
|
|
|
+ </sect2>
|
|
|
+</sect1>
|