quickstart-intro-mvc.xml 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 19912 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="learning.quickstart.intro">
  5. <title>Introducción a MVC &amp; ZF</title>
  6. <sect2 id="learning.quickstart.intro.zf">
  7. <title>Zend Framework</title>
  8. <para>
  9. Zend Framework es un framework de código abierto y orientado a objectos para facilitar
  10. el desarrollo de aplicaciones web con <acronym>PHP</acronym> 5.
  11. A menudo es considerado una 'biblioteca de componentes', debido a que estos poseen bajo
  12. acoplamiento entre sí lo cual permite reutilizarlos con un alto grado de independencia. Proporciona
  13. además una sofisticada implementación del patrón Modelo-Vista-Controlador
  14. (<acronym>MVC</acronym>) el cual puede
  15. ser utilizado para fijar la estructura básica de las aplicaciones desarrolladas con el framework.
  16. Encontrarás la lista completa de los componentes de Zend Framework junto a
  17. breves descripciones de los mismos en la
  18. <ulink url="http://framework.zend.com/about/components">lista de componentes</ulink>.
  19. En este tutorial te ayudaremos a familiarizarte con aquellos componentes del framework
  20. utilizados de manera más frecuente incluyendo
  21. <classname>Zend_Controller</classname>, <classname>Zend_Layout</classname>,
  22. <classname>Zend_Config</classname>, <classname>Zend_Db</classname>,
  23. <classname>Zend_Db_Table</classname> y <classname>Zend_Registry</classname>.
  24. </para>
  25. <para>
  26. Utilizando dichos componentes construiremos en pocos minutos una sencilla aplicación de ejemplo
  27. en la cual nos serviremos de una base de datos para registrar los comentarios que dejen los usuarios
  28. de un sitio web. Puedes descargar el código fuente completo para
  29. esta aplicación de los siguientes enlaces:
  30. </para>
  31. <itemizedlist>
  32. <listitem>
  33. <para>
  34. <ulink
  35. url="http://framework.zend.com/demos/ZendFrameworkQuickstart.zip">formato zip</ulink>
  36. </para>
  37. </listitem>
  38. <listitem>
  39. <para>
  40. <ulink
  41. url="http://framework.zend.com/demos/ZendFrameworkQuickstart.tar.gz">formato tar.gz</ulink>
  42. </para>
  43. </listitem>
  44. </itemizedlist>
  45. </sect2>
  46. <sect2 id="learning.quickstart.intro.mvc">
  47. <title>Modelo-Vista-Controlador</title>
  48. <para>
  49. En resumen ¿qué es exactamente el patrón <acronym>MVC</acronym> del que tanto hablan? ¿y por qué
  50. debería importarte? <acronym>MVC</acronym> no es sólo un acrónimo de tres letras (<acronym>TLA</acronym>) que puedes utilizar
  51. para impresionar a tus amigos, actualmente <acronym>MVC</acronym> se ha convertido en un estándar
  52. para el diseño de las aplicaciones web modernas. Y por buenas razones ya que
  53. ayuda a modelar de forma precisa la separación de intereses permitiendo agrupar
  54. en distintas partes de la aplicación el código que se relaciona con la presentación,
  55. el que implementa la lógica de negocios y el que accede a los datos.
  56. Muchos desarrolladores encuentran indispensable dicha separación para ayudarlos a mantener
  57. su código organizado, especialmente cuando más de un desarrollador se encuentra
  58. trabajando en la misma aplicación.
  59. </para>
  60. <note>
  61. <title>Más información</title>
  62. <para>
  63. Profundicemos un poco y veamos cada parte de este patrón por separado:
  64. </para>
  65. <para>
  66. <inlinegraphic width="321" scale="100" align="center" valign="middle"
  67. fileref="figures/learning.quickstart.intro.mvc.png" format="PNG" />
  68. </para>
  69. <itemizedlist>
  70. <listitem>
  71. <para>
  72. <emphasis role="strong">Modelo</emphasis> - ofrece las funcionalidades básicas
  73. de la aplicación incluyendo las rutinas de acceso a datos y la lógica de negocios.
  74. </para>
  75. </listitem>
  76. <listitem>
  77. <para>
  78. <emphasis role="strong">Vista</emphasis> - se encarga de generar lo que se presenta
  79. al usuario a partir de los datos que recibe del controlador, al mismo tiempo que recogen
  80. los datos que brindan los usuarios. Es la parte de la aplicación donde encontrarás el <acronym>HTML</acronym>.
  81. </para>
  82. </listitem>
  83. <listitem>
  84. <para>
  85. <emphasis role="strong">Controlador</emphasis> - son los que unen el patrón.
  86. Según el pedido del usuario y otras variables ellos pueden decidir ejecutar
  87. otro controlador o manipular los datos del modelo para luego asignarle el resultado
  88. a una vista en particular.
  89. Muchos expertos en <acronym>MVC</acronym> recomiendan <ulink
  90. url="http://weblog.jamisbuck.org/2006/10/18/skinny-controller-fat-model">mantener
  91. el controlador lo más limpio posible</ulink>.
  92. </para>
  93. </listitem>
  94. </itemizedlist>
  95. <para>
  96. Podríamos <ulink url="http://ootips.org/mvc-pattern.html">extendernos aún más</ulink>
  97. sobre este patrón pero por ahora ya posees los conocimientos suficientes
  98. que te permitirán entender la aplicación que vamos a construir.
  99. </para>
  100. </note>
  101. </sect2>
  102. </sect1>