quickstart-intro-mvc.xml 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="learning.quickstart.intro">
  5. <title>Introdução ao Zend Framework e ao MVC</title>
  6. <sect2 id="learning.quickstart.intro.zf">
  7. <title>Zend Framework</title>
  8. <para>
  9. Zend Framework é um framework para aplicações Web orientado a objetos e de código aberto
  10. para <acronym>PHP</acronym> 5. Zend Framework é geralmente chamado de "biblioteca de
  11. componentes", porque tem muitos componentes fracamente acoplados que você pode usar de
  12. forma mais ou menos independente. Mas o Zend Framework também fornece uma avançada
  13. implementação Model-View-Controller (<acronym>MVC</acronym>) que pode ser usada para
  14. estabelecer uma estrutura básica para seus aplicativos Zend Framework. Uma lista
  15. completa dos componentes do Zend Framework, juntamente com uma breve descrição pode ser
  16. encontrada na <ulink url="http://framework.zend.com/about/components">visão geral dos
  17. componentes</ulink>. Este Início Rápido irá apresentá-lo a alguns dos componentes do
  18. Zend Framework mais comumente usados, incluindo <classname>Zend_Controller</classname>,
  19. <classname>Zend_Layout</classname>, <classname>Zend_Config</classname>,
  20. <classname>Zend_Db</classname>, <classname>Zend_Db_Table</classname>,
  21. <classname>Zend_Registry</classname> juntamente com alguns assistentes de visualização.
  22. </para>
  23. <para>
  24. Usando esses componentes, vamos construir um simples aplicativo de livro de visitas
  25. movido a banco de dados em poucos minutos. O código fonte completo para esta aplicação
  26. está disponível nos seguintes arquivos:
  27. </para>
  28. <itemizedlist>
  29. <listitem>
  30. <para>
  31. <ulink
  32. url="http://framework.zend.com/demos/ZendFrameworkQuickstart.zip">zip</ulink>
  33. </para>
  34. </listitem>
  35. <listitem>
  36. <para>
  37. <ulink
  38. url="http://framework.zend.com/demos/ZendFrameworkQuickstart.tar.gz">tar.gz</ulink>
  39. </para>
  40. </listitem>
  41. </itemizedlist>
  42. </sect2>
  43. <sect2 id="learning.quickstart.intro.mvc">
  44. <title>Model-View-Controller</title>
  45. <para>
  46. Então o que é exatamente este padrão <acronym>MVC</acronym> que todos estão falando, e
  47. por que você deveria se preocupar? <acronym>MVC</acronym> é muito mais do que apenas uma
  48. sigla de três letras (<acronym>TLA</acronym>), que você pode sacar sempre que quiser
  49. parecer esperto, tornou-se parte de uma norma nos projetos de aplicações Web modernas. E
  50. por uma boa razão. A maioria do código de aplicações Web está sob uma das três
  51. categorias seguintes: apresentação, lógica de negócios e acesso aos dados. Nos modelos
  52. do padrão <acronym>MVC</acronym> esta separação relaciona-se bem. O resultado final é
  53. que seu código de apresentação pode ser consolidado em uma parte de sua aplicação com
  54. sua lógica de negócio em outra parte e seu código de acesso aos dados também em outra.
  55. Muitos desenvolvedores descobriram que essa separação bem definida é indispensável para
  56. manter seus códigos organizados, especialmente quando mais do que um desenvolvedor está
  57. trabalhando em uma mesma aplicação.
  58. </para>
  59. <note>
  60. <title>Mais Informações</title>
  61. <para>
  62. Vamos decompor o padrão e dar um olhada nas peças individuais:
  63. </para>
  64. <para>
  65. <inlinegraphic width="321" scale="100" align="center" valign="middle"
  66. fileref="figures/learning.quickstart.intro.mvc.png" format="PNG" />
  67. </para>
  68. <itemizedlist>
  69. <listitem>
  70. <para>
  71. <emphasis>Model</emphasis> - Esta é a parte de sua aplicação que define sua
  72. funcionalidade básica por trás de um conjunto de abstrações. Rotinas de
  73. acesso a dados e alguma lógica de negócio podem ser definidos no modelo.
  74. </para>
  75. </listitem>
  76. <listitem>
  77. <para>
  78. <emphasis>View</emphasis> - Apresentações definem exatamente o que será
  79. apresentado ao usuário. Geralmente os controladores passam os dados para
  80. cada apresentação interpretá-los em algum formato. Apresentações também
  81. coletam frequentemente os dados do usuário. É aqui que você provavelmente
  82. encontrará a marcação <acronym>HTML</acronym> nas suas aplicações
  83. <acronym>MVC</acronym>.
  84. </para>
  85. </listitem>
  86. <listitem>
  87. <para>
  88. <emphasis>Controller</emphasis> - Controladores vinculam todo o padrão em um
  89. conjunto. Eles manipulam modelos, decidem qual apresentação será exibida
  90. baseados em solicitações do usuário e em outros fatores, repassam os dados
  91. que cada apresentação necessita, ou transfere completamente o controle para
  92. outro controlador. A maioria dos especialistas em <acronym>MVC</acronym>
  93. recomendam <ulink
  94. url="http://weblog.jamisbuck.org/2006/10/18/skinny-controller-fat-model">manter
  95. os controladores o mais simples possível</ulink>.
  96. </para>
  97. </listitem>
  98. </itemizedlist>
  99. <para>
  100. Claro que há <ulink url="http://ootips.org/mvc-pattern.html">mais a ser dito</ulink>
  101. sobre esse padrão fundamental, mas isso deve dar-lhe conhecimento suficiente para
  102. entender a aplicação de livro de visitas que vamos construir.
  103. </para>
  104. </note>
  105. </sect2>
  106. </sect1>