Your SlideShare is downloading. ×
0
Zend Framework
Desarrollo de aplicaciones MVC en PHP
          Juan Carbajal Paxi




                                    ...
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 proye...
¿Qué frameworks existen?

           Nombre          Lenguaje      Licencia
      RubyOnRails        Ruby         MIT
    ...
Frameworks PHP



                                         Zend        Cake   Code Igniter    Symfony
PHP5                ...
¿Por qué Zend Framework?

 Zend Framework provee un esqueleto de alta calidad
 para el desarrollo de Aplicaciones Web y Se...
Metas de Zend Framework

Piensen en hacer las cosas simples, pero
  no mas simples. (Albert Einstein)

 Simple es fácil de...
Enfoque de Zend Framework

 Simple ya es poderoso.
 Foco en las tareas.
 Alta productividad.
 Costo efectivo.
 Simples tar...
Caracteristicas de Zend Framework

 Librería basada en componentes que resuelve el 80%
 de problemas comunes.
 Arquitectur...
MVC




      11
Historia

 Aplicaciones Tradicionales.
 Strust (1999).
 Ruby on Rails (Convención sobre configuración).
 Existe un intento...
Modelo Vista Controlador

 Es un patrón de arquitectura de software que divide
 una aplicación en tres capas.
 Originalmen...
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.
 Repre...
Vista

 Son un conjunto de scripts que estructuran la
 representación de datos en la salida (pantalla,
 servicios, impreso...
Controlador

 Manejador de eventos que provocan cambios en el
 modelo y/o la vista.
 Es el despachador de respuestas y con...
Modelo Vista Controlador




                           18
Interacción MVC

 Controlador <-> Vista
   El controlador y la vista pueden interactuar
 Controlador <-> Modelo
   El cont...
Ventajas

 Separa la manipulación de datos, la representación y el
 control de eventos, permitiendo un código mantenible.
...
Zend Framework




                 21
Modelo: Zend_Db

 Provee la abstracción de la Base de datos mediante
 Zend_Db_Adapter.
 Limitado (query) abstracción de co...
Modelo: Zend_Db




                  23
Vista: Zend_View

 Usa PHP como lenguaje de plantilla
    Asigna variables en el objeto Zend_View.
    Accede a las variab...
Vista: Zend_View




                   25
Controlador: Zend_Controller

 Bootstrap:
   Instancia de Zend_Controller_Front
   Configuración del entorno frontal del c...
Controlador: Zend_Controller_Action




                                      27
Estructura de Archivos

 Estructura de archivos
   /www
      /app
          /models
          /controller
          /view...
Estructura de Archivos

 Estructura de archivos (modular)
   /www
      /app
          /models
          /modules
        ...
Ventajas de Zend Framework

 Claridad de diseño.
 Modularidad eficiente.
 Múltiples vistas y presentaciones.
 Extensible y...
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 Sq...
Componentes

 MVC                Zend_Locale
 Base de Datos      Zend_Translate
 I18N                 Array, CSV, GetText,...
Componentes

 MVC                Zend_Auth
 Base de Datos        DbTable
 I18N                 Digest
                    ...
Componentes

 MVC                Zend_Http_Client
 Base de Datos      Zend_Rest_Client
 I18N               Zend_Service
 A...
Componentes

 MVC                Zend_Mail
 Base de Datos      Zend_Mime
 I18N                 Lee o envia correos
 Autent...
Componentes

 MVC                Zend_Cache
 Base de Datos      Zend_Config
 I18N               Zend_Console_Getopt
 Auten...
¿Preguntas?




              40
Upcoming SlideShare
Loading in...5
×

Mvc

6,710

Published on

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,710
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
321
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Mvc"

  1. 1. Zend Framework Desarrollo 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 Symfony PHP5 Si No No Si Estructura de directorios predefinida No Si Si Si Internacionalización Oficial Si En progreso No Si Scripts de línea de comandos para la instalación del framework No No No Si Requiere Configuración Si No No Si Proveedor ORM comprensible No Si No Si (Propel) Buena documentación y tutoriales Si Si Si Si Testeo de unidades Si No No Si Soporte 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 Framework Piensen 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×