Zend FrameworkDesarrollo de aplicaciones MVC en PHP          Juan Carbajal Paxi                                        1
Agenda Introducción. MVC. Zend Framework. Aplicación. Librerías.                   2
Introducción               3
¿Por qué un framework? Común plataforma de desarrollo para un equipo. Consistencia y orden de código en distintos proyecto...
¿Qué frameworks existen?           Nombre          Lenguaje      Licencia      RubyOnRails        Ruby         MIT      St...
Frameworks PHP                                         Zend        Cake   Code Igniter    SymfonyPHP5                     ...
¿Por qué Zend Framework? Zend Framework provee un esqueleto de alta calidad para el desarrollo de Aplicaciones Web y Servi...
Metas de Zend FrameworkPiensen en hacer las cosas simples, pero  no mas simples. (Albert Einstein) Simple es fácil de usar...
Enfoque de Zend Framework Simple ya es poderoso. Foco en las tareas. Alta productividad. Costo efectivo. Simples tareas pa...
Caracteristicas de Zend Framework Librería basada en componentes que resuelve el 80% de problemas comunes. Arquitectura fl...
MVC      11
Historia Aplicaciones Tradicionales. Strust (1999). Ruby on Rails (Convención sobre configuración). Existe un intento de l...
Modelo Vista Controlador Es un patrón de arquitectura de software que divide una aplicación en tres capas. Originalmente f...
Modelo Vista Controlador                           14
Modelo Es la representación especifica de datos y lógica de datos que asegura la integridad y herencia de datos. Represent...
Vista Son un conjunto de scripts que estructuran la representación de datos en la salida (pantalla, servicios, impresoras)...
Controlador Manejador de eventos que provocan cambios en el modelo y/o la vista. Es el despachador de respuestas y control...
Modelo Vista Controlador                           18
Interacción MVC Controlador <-> Vista   El controlador y la vista pueden interactuar Controlador <-> Modelo   El controlad...
Ventajas Separa la manipulación de datos, la representación y el control de eventos, permitiendo un código mantenible. Dec...
Zend Framework                 21
Modelo: Zend_Db Provee la abstracción de la Base de datos mediante Zend_Db_Adapter. Limitado (query) abstracción de consul...
Modelo: Zend_Db                  23
Vista: Zend_View Usa PHP como lenguaje de plantilla    Asigna variables en el objeto Zend_View.    Accede a las variables ...
Vista: Zend_View                   25
Controlador: Zend_Controller Bootstrap:   Instancia de Zend_Controller_Front   Configuración del entorno frontal del contr...
Controlador: Zend_Controller_Action                                      27
Estructura de Archivos Estructura de archivos   /www      /app          /models          /controller          /views      ...
Estructura de Archivos Estructura de archivos (modular)   /www      /app          /models          /modules             /d...
Ventajas de Zend Framework Claridad de diseño. Modularidad eficiente. Múltiples vistas y presentaciones. Extensible y conf...
Aplicación             31
Librerías            32
Componentes MVC                Zend_Controller Base de Datos        Controlador Frontal I18N                 Ruteo        ...
Componentes MVC                Zend_Db_Adapter Base de Datos        IBM Db2, Oracle, MySQL, I18N                 MS Sql Se...
Componentes MVC                Zend_Locale Base de Datos      Zend_Translate I18N                 Array, CSV, GetText, QT,...
Componentes MVC                Zend_Auth Base de Datos        DbTable I18N                 Digest                      Htt...
Componentes MVC                Zend_Http_Client Base de Datos      Zend_Rest_Client I18N               Zend_Service Autent...
Componentes MVC                Zend_Mail Base de Datos      Zend_Mime I18N                 Lee o envia correos Autentifica...
Componentes MVC                Zend_Cache Base de Datos      Zend_Config I18N               Zend_Console_Getopt Autentific...
¿Preguntas?              40
Upcoming SlideShare
Loading in …5
×

Zend Framework - MVC - 2008

1,891 views
1,804 views

Published on

Desarrollo de aplicaciones MVC con Zend Framework.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,891
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
68
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Zend Framework - MVC - 2008

  1. 1. Zend FrameworkDesarrollo de aplicaciones MVC en PHP Juan Carbajal Paxi 1
  2. 2. Agenda Introducción. MVC. Zend Framework. Aplicación. Librerías. 2
  3. 3. Introducción 3
  4. 4. ¿Por qué un framework? Común plataforma de desarrollo para un equipo. Consistencia y orden de código en distintos proyectos. Testeadas y probada soluciones a un problema común. Ahorro de tiempo en la programación. Mejora la seguridad de la aplicación. 4
  5. 5. ¿Qué frameworks existen? Nombre Lenguaje Licencia RubyOnRails Ruby MIT Struts Java/j2ee Apache Spring Framework Java/j2ee Apache Tapestry Java/j2ee Apache Aurora Java/j2ee Apache Catalyst Perl GPL CakePHP PHP MIT CodeIgniter PHP GNU/GPL Kumbia PHP GNU/GPL Symfony PHP MIT Seagull PHP MIT Qcodo PHP MIT Zend PHP MIT Zope3 Python ZPL Turbogears Python Varias Django Python BSD MonoRails .NET Apache Spring .Net .NET Apache 5
  6. 6. Frameworks PHP Zend Cake Code Igniter SymfonyPHP5 Si No No SiEstructura de directoriospredefinida No Si Si SiInternacionalización Oficial Si En progreso No SiScripts de línea de comandos parala instalación del framework No No No SiRequiere Configuración Si No No SiProveedor ORM comprensible No Si No Si (Propel)Buena documentación y tutoriales Si Si Si SiTesteo de unidades Si No No SiSoporte de Comunidad Si Si Si Si 6
  7. 7. ¿Por qué Zend Framework? Zend Framework provee un esqueleto de alta calidad para el desarrollo de Aplicaciones Web y Servicios Web. Siguiendo el espíritu de PHP, fácil uso y potente funcionalidad; enfocándose en cambios de construcción de aplicaciones web robustas, seguras y modernas. http://framework.zend.com/ 7
  8. 8. Metas de Zend FrameworkPiensen en hacer las cosas simples, pero no mas simples. (Albert Einstein) Simple es fácil de usar. Simple es mas estable y menos propenso a errores. Simple es mas compatible. Simple es fácil de mantener. 8
  9. 9. Enfoque de Zend Framework Simple ya es poderoso. Foco en las tareas. Alta productividad. Costo efectivo. Simples tareas para configurar aplicaciones. 9
  10. 10. Caracteristicas de Zend Framework Librería basada en componentes que resuelve el 80% de problemas comunes. Arquitectura flexible. PHP 5, OO. Diseño extensible. Encapsula las mejores prácticas. Bien documentada. Soporte comercial (Zend) Soporte en Zend Studio/Eclipse (PDT) Licencia BSD 10
  11. 11. MVC 11
  12. 12. Historia Aplicaciones Tradicionales. Strust (1999). Ruby on Rails (Convención sobre configuración). Existe un intento de llevar la programación orientada a eventos a la web. 12
  13. 13. Modelo Vista Controlador Es un patrón de arquitectura de software que divide una aplicación en tres capas. Originalmente fue implementado como un mapa tradicional de ingreso: Ingreso de Datos -> Proceso -> Salida de Datos Controlador -> Modelo -> Vista 13
  14. 14. Modelo Vista Controlador 14
  15. 15. Modelo Es la representación especifica de datos y lógica de datos que asegura la integridad y herencia de datos. Representa datos y su actividad. Responde a solicitudes e instrucciones de cambio. No tiene conocimiento sobre el controlador o la vista. Ejemplo UML -> SQL -> PHP Object 15
  16. 16. Vista Son un conjunto de scripts que estructuran la representación de datos en la salida (pantalla, servicios, impresoras). Es la forma de visualización del estado del modelo. Captura datos. Ejm: lista.html, noticias.xml, reporte.pdf, comentarios.html 16
  17. 17. Controlador Manejador de eventos que provocan cambios en el modelo y/o la vista. Es el despachador de respuestas y controlador de flujo. Ofrece facilidades para cambiar el estado del modelo, interpretando eventos del ratón y del teclado; y comandando el modelo y/o vista para cambiar apropiadamente. 17
  18. 18. Modelo Vista Controlador 18
  19. 19. Interacción MVC Controlador <-> Vista El controlador y la vista pueden interactuar Controlador <-> Modelo El controlador puede extraer datos de el modelo para decisiones o puede modificar el modelo. Vista <- Modelo La vista puede acceder al modelo para recibir datos, pero no para escribir en el. 19
  20. 20. Ventajas Separa la manipulación de datos, la representación y el control de eventos, permitiendo un código mantenible. Decrementa la duplicación de código. Centraliza el control de datos. Facilita el mantenimiento y modificación de la aplicación. Ayuda a equipos de desarrollo en centrarse en áreas especificas. Mayor facilidad para añadir fuentes de datos y tipos de clientes. 20
  21. 21. Zend Framework 21
  22. 22. Modelo: Zend_Db Provee la abstracción de la Base de datos mediante Zend_Db_Adapter. Limitado (query) abstracción de consulta. Provee opcional consulta de perfiles. Tabla de conexión directa vía Zend_Db_Table. Beneficios: Código portable. Fácil asignación de base de datos para todas las tablas. OO 22
  23. 23. Modelo: Zend_Db 23
  24. 24. Vista: Zend_View Usa PHP como lenguaje de plantilla Asigna variables en el objeto Zend_View. Accede a las variables con notación de objetos $this->var El formato seleccionado es utilizado en la respuesta. Variables grabadas en la plantilla. Helpers: Registro de helpers en la carpeta de la vista. Filters: Filtros para convertir formatos HTML a PDF, JSON, XML, Tidy, etc. Ventajas: todo el PHP a su disposición. 24
  25. 25. Vista: Zend_View 25
  26. 26. Controlador: Zend_Controller Bootstrap: Instancia de Zend_Controller_Front Configuración del entorno frontal del controlador $front->dispatch() Captura solicitud (Zend_Controller_Request_Abstract) Rutea solicitud (Zend_Controller_Route_Rewrite) /controlador/accion/parametro/valor /modulo/controlador/accion/parametro/valor /biblioteca/usuario/buscar/nombre/jose Inicia interacción de despacho despacha acción (Zend_Controller_Dispatcher_Standard) controlador instanciado (Zend_Controller_Action) llamada al método acción Envía respuesta (Zend_Controller_Response_Abstract) 26
  27. 27. Controlador: Zend_Controller_Action 27
  28. 28. Estructura de Archivos Estructura de archivos /www /app /models /controller /views /helpers /scripts /index /library /Zend /public .htaccess index.php /javascript /css 28
  29. 29. Estructura de Archivos Estructura de archivos (modular) /www /app /models /modules /default /controller /views /helpers /filters /scripts /index /library /Zend /public .htaccess index.php /javascript /css 29
  30. 30. Ventajas de Zend Framework Claridad de diseño. Modularidad eficiente. Múltiples vistas y presentaciones. Extensible y configurable. DIstribuible. 30
  31. 31. Aplicación 31
  32. 32. Librerías 32
  33. 33. Componentes MVC Zend_Controller Base de Datos Controlador Frontal I18N Ruteo Manipulación de acciones Autentificación Plugins y Helpers Servicios Web Solicitudes Correo, Formato, Respuestas Búsqueda Zend_View Utilidad Plantilla de clase PHP Helpers Filtros Zend_Json (ajax) 33
  34. 34. Componentes MVC Zend_Db_Adapter Base de Datos IBM Db2, Oracle, MySQL, I18N MS Sql Server, PostgreSQL, Firebird, Autentificación Sqlite. Servicios Web Zend_Db_Profiler Correo, Formato, Zend_Db_Select Búsqueda Zend_Db_Table Utilidad Zend_Db_Table_Rowset Zend_Db_Table_Row ActiveRecord 34
  35. 35. Componentes MVC Zend_Locale Base de Datos Zend_Translate I18N Array, CSV, GetText, QT, Autentificación Tmx, Xliff Servicios Web Zend_Date Correo, Formato, Zend_Measure Búsqueda Utilidad 35
  36. 36. Componentes MVC Zend_Auth Base de Datos DbTable I18N Digest Http Autentificación Zend_Session Servicios Web Persistente. Correo, Formato, Zend_Acl Búsqueda Manejo de roles y Utilidad privilegios 36
  37. 37. Componentes MVC Zend_Http_Client Base de Datos Zend_Rest_Client I18N Zend_Service Autentificación Akimef, Amazon, Flickr, Servicios Web Simpy, Audioscrobbler, Strikelron, Delicious, Correo, Formato, Yahoo Búsqueda Zend_Feed (RSS y Atom) Utilidad Zend_Gdata (Google Data Api) Zend_XmlRpc_Client 37
  38. 38. Componentes MVC Zend_Mail Base de Datos Zend_Mime I18N Lee o envia correos Autentificación Zend_Pdf Servicios Web Lee, edita y crea documentos PDF Correo, Formato, Zend_Search_Lucene Busqueda Ingieneria de Busqueda Utilidad Compatibilidad con Apache Lucene 38
  39. 39. Componentes MVC Zend_Cache Base de Datos Zend_Config I18N Zend_Console_Getopt Autentificación Zend_Filter Servicios Web Zend_Filter_Input Correo, Formato, Zend_Loader Busqueda Zend_Log Utilidad 39
  40. 40. ¿Preguntas? 40

×