|
@@ -0,0 +1,115 @@
|
|
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
+<!-- EN-Revision: 19912 -->
|
|
|
|
|
+<!-- Reviewed: no -->
|
|
|
|
|
+<sect1 id="learning.quickstart.intro">
|
|
|
|
|
+ <title>Introducción a MVC & ZF</title>
|
|
|
|
|
+
|
|
|
|
|
+ <sect2 id="learning.quickstart.intro.zf">
|
|
|
|
|
+ <title>Zend Framework</title>
|
|
|
|
|
+
|
|
|
|
|
+ <para>
|
|
|
|
|
+ Zend Framework es un framework de código abierto y orientado a objectos para facilitar
|
|
|
|
|
+ el desarrollo de aplicaciones web con PHP 5.
|
|
|
|
|
+ A menudo es considerado una 'biblioteca de componentes', debido a que estos poseen bajo
|
|
|
|
|
+ acoplamiento entre sí lo cual permite reutilizarlos con un alto grado de independencia. Proporciona
|
|
|
|
|
+ además una sofisticada implementación del patrón Modelo-Vista-Controlador (MVC) el cual puede
|
|
|
|
|
+ ser utilizado para fijar la estructura básica de las aplicaciones desarrolladas con el framework.
|
|
|
|
|
+ Encontrarás la lista completa de los componentes del Zend Framework junto a
|
|
|
|
|
+ breves descripciones de los mismos en la
|
|
|
|
|
+ <ulink url="http://framework.zend.com/about/components">lista de componentes</ulink>.
|
|
|
|
|
+ En este tutorial te ayudaremos a familiarizarte con aquellos componentes del framework
|
|
|
|
|
+ utilizados de manera más frecuente incluyendo
|
|
|
|
|
+ <classname>Zend_Controller</classname>, <classname>Zend_Layout</classname>,
|
|
|
|
|
+ <classname>Zend_Config</classname>, <classname>Zend_Db</classname>,
|
|
|
|
|
+ <classname>Zend_Db_Table</classname> y <classname>Zend_Registry</classname>.
|
|
|
|
|
+ </para>
|
|
|
|
|
+
|
|
|
|
|
+ <para>
|
|
|
|
|
+ Utilizando dichos componentes construiremos en pocos minutos una sencilla aplicación de ejemplo
|
|
|
|
|
+ en la cual nos serviremos de una base de datos para registrar los comentarios que dejen los usuarios
|
|
|
|
|
+ de un sitio web. Puedes descargar el código fuente completo para
|
|
|
|
|
+ esta aplicación de los siguientes enlaces:
|
|
|
|
|
+ </para>
|
|
|
|
|
+
|
|
|
|
|
+ <itemizedlist>
|
|
|
|
|
+ <listitem>
|
|
|
|
|
+ <para>
|
|
|
|
|
+ <ulink
|
|
|
|
|
+ url="http://framework.zend.com/demos/ZendFrameworkQuickstart.zip">formato zip</ulink>
|
|
|
|
|
+ </para>
|
|
|
|
|
+ </listitem>
|
|
|
|
|
+
|
|
|
|
|
+ <listitem>
|
|
|
|
|
+ <para>
|
|
|
|
|
+ <ulink
|
|
|
|
|
+ url="http://framework.zend.com/demos/ZendFrameworkQuickstart.tar.gz">formato tar.gz</ulink>
|
|
|
|
|
+ </para>
|
|
|
|
|
+ </listitem>
|
|
|
|
|
+ </itemizedlist>
|
|
|
|
|
+ </sect2>
|
|
|
|
|
+
|
|
|
|
|
+ <sect2 id="learning.quickstart.intro.mvc">
|
|
|
|
|
+ <title>Modelo-Vista-Controlador</title>
|
|
|
|
|
+
|
|
|
|
|
+ <para>
|
|
|
|
|
+ En resumen ¿qué es exactamente el patrón MVC del que tanto hablan? ¿y por qué
|
|
|
|
|
+ debería importarte? MVC no es sólo un acrónimo de tres letras que puedes utilizar
|
|
|
|
|
+ para impresionar a tus amigos, actualmente MVC se ha convertido en un estándar
|
|
|
|
|
+ para el diseño de las aplicaciones web modernas. Y por buenas razones ya que
|
|
|
|
|
+ ayuda a modelar de forma precisa la separación de intereses permitiendo agrupar
|
|
|
|
|
+ en distintas partes de la aplicación el código que se relaciona con la presentación,
|
|
|
|
|
+ el que implementa la lógica de negocios y el que accede a los datos.
|
|
|
|
|
+ Muchos desarrolladores encuentran indispensable dicha separación para ayudarlos a mantener
|
|
|
|
|
+ su código organizado, especialmente cuando más de un desarrollador se encuentra
|
|
|
|
|
+ trabajando en la misma aplicación.
|
|
|
|
|
+ </para>
|
|
|
|
|
+
|
|
|
|
|
+ <note>
|
|
|
|
|
+ <title>Más información</title>
|
|
|
|
|
+
|
|
|
|
|
+ <para>
|
|
|
|
|
+ Profundicemos un poco y veamos cada parte de este patrón por separado:
|
|
|
|
|
+ </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 role="strong">Modelo</emphasis> - ofrece las funcionalidades básicas
|
|
|
|
|
+ de la aplicación incluyendo las rutinas de acceso a datos y la lógica de negocios.
|
|
|
|
|
+ </para>
|
|
|
|
|
+ </listitem>
|
|
|
|
|
+
|
|
|
|
|
+ <listitem>
|
|
|
|
|
+ <para>
|
|
|
|
|
+ <emphasis role="strong">Vista</emphasis> - se encarga de generar lo que se presenta
|
|
|
|
|
+ al usuario a partir de los datos que recibe del controlador, al mismo tiempo que recogen
|
|
|
|
|
+ los datos que brindan los usuarios. Es la parte de la aplicación donde encontrarás el HTML.
|
|
|
|
|
+ </para>
|
|
|
|
|
+ </listitem>
|
|
|
|
|
+
|
|
|
|
|
+ <listitem>
|
|
|
|
|
+ <para>
|
|
|
|
|
+ <emphasis role="strong">Controlador</emphasis> - son los que unen el patrón.
|
|
|
|
|
+ Según el pedido del usuario y otras variables ellos pueden decidir ejecutar
|
|
|
|
|
+ otro controlador o manipular los datos del modelo para luego asignarle el resultado
|
|
|
|
|
+ a una vista en particular.
|
|
|
|
|
+ Muchos expertos en MVC recomiendan <ulink
|
|
|
|
|
+ url="http://weblog.jamisbuck.org/2006/10/18/skinny-controller-fat-model">mantener
|
|
|
|
|
+ el controlador lo más limpio posible</ulink>.
|
|
|
|
|
+ </para>
|
|
|
|
|
+ </listitem>
|
|
|
|
|
+ </itemizedlist>
|
|
|
|
|
+
|
|
|
|
|
+ <para>
|
|
|
|
|
+ Podríamos <ulink url="http://ootips.org/mvc-pattern.html">extendernos aún más</ulink>
|
|
|
|
|
+ sobre este patrón pero por ahora ya posees los conocimientos suficientes
|
|
|
|
|
+ que te permitirán entender la aplicación que vamos a construir.
|
|
|
|
|
+ </para>
|
|
|
|
|
+ </note>
|
|
|
|
|
+ </sect2>
|
|
|
|
|
+</sect1>
|