SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
Zend Framework
Desarrollo 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 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
¿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
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
¿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
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
Enfoque de Zend Framework

 Simple ya es poderoso.
 Foco en las tareas.
 Alta productividad.
 Costo efectivo.
 Simples tareas para configurar aplicaciones.




                                                9
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
MVC




      11
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
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
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.
 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
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
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
Modelo Vista Controlador




                           18
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
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
Zend Framework




                 21
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
Modelo: Zend_Db




                  23
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
Vista: Zend_View




                   25
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
Controlador: Zend_Controller_Action




                                      27
Estructura de Archivos

 Estructura de archivos
   /www
      /app
          /models
          /controller
          /views
              /helpers
              /scripts
                   /index
      /library
          /Zend
      /public
          .htaccess
          index.php
          /javascript
          /css




                            28
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
Ventajas de Zend Framework

 Claridad de diseño.
 Modularidad eficiente.
 Múltiples vistas y presentaciones.
 Extensible y configurable.
 DIstribuible.




                                      30
Aplicación




             31
Librerías




            32
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
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
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
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
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
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
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
¿Preguntas?




              40

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

MODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHPMODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHP
 
Model View Controller (MVC)
Model View Controller (MVC)Model View Controller (MVC)
Model View Controller (MVC)
 
Aplicaciones en capas1
Aplicaciones en capas1Aplicaciones en capas1
Aplicaciones en capas1
 
Modelo, vista, controlador
Modelo, vista, controladorModelo, vista, controlador
Modelo, vista, controlador
 
Patrón MVC
Patrón MVCPatrón MVC
Patrón MVC
 
Modelo vista controlador
Modelo vista controladorModelo vista controlador
Modelo vista controlador
 
Mvc
MvcMvc
Mvc
 
Servicios web
Servicios webServicios web
Servicios web
 
3-Unidad 1: Arquitectura de Diseño-1.2 Controlador-Introducción
3-Unidad 1: Arquitectura de Diseño-1.2 Controlador-Introducción3-Unidad 1: Arquitectura de Diseño-1.2 Controlador-Introducción
3-Unidad 1: Arquitectura de Diseño-1.2 Controlador-Introducción
 
MVC
MVCMVC
MVC
 
Modelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capasModelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capas
 
Taller MVC
Taller MVCTaller MVC
Taller MVC
 
MODELO VISTA CONTROLADOR
MODELO VISTA CONTROLADORMODELO VISTA CONTROLADOR
MODELO VISTA CONTROLADOR
 
Calculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVCCalculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVC
 
S8 arely medina_power_point
S8 arely medina_power_pointS8 arely medina_power_point
S8 arely medina_power_point
 
Documentacion struts2
Documentacion struts2Documentacion struts2
Documentacion struts2
 
Patron mvc struts
Patron mvc strutsPatron mvc struts
Patron mvc struts
 
Arquitectura MVC
Arquitectura MVCArquitectura MVC
Arquitectura MVC
 
Frameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESFrameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITES
 
Documentacion struts2 laura.palma
Documentacion struts2 laura.palmaDocumentacion struts2 laura.palma
Documentacion struts2 laura.palma
 

Similar a Desarrollo de aplicaciones MVC con Zend Framework

Zend Framework - MVC - 2008
Zend Framework - MVC - 2008Zend Framework - MVC - 2008
Zend Framework - MVC - 2008Juan Carbajal
 
Zend Framework2
Zend Framework2Zend Framework2
Zend Framework2uni
 
ZF Arquitecturas Escalables - Fesoli 2010
ZF Arquitecturas Escalables - Fesoli 2010ZF Arquitecturas Escalables - Fesoli 2010
ZF Arquitecturas Escalables - Fesoli 2010Juan Carbajal
 
Introducción a Zend Framework
Introducción a Zend FrameworkIntroducción a Zend Framework
Introducción a Zend FrameworkIrontec
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightParadigma Digital
 
Zend Framework Taller de SeeD Software, Colombia
Zend Framework Taller de SeeD Software, ColombiaZend Framework Taller de SeeD Software, Colombia
Zend Framework Taller de SeeD Software, Colombiarazigal
 
Herramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloHerramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloGastón Guillerón
 
Herramientas agilesdesarrollo
Herramientas agilesdesarrolloHerramientas agilesdesarrollo
Herramientas agilesdesarrollogabrielpiccoli
 
Backend middleware frontend (2)
Backend middleware frontend (2)Backend middleware frontend (2)
Backend middleware frontend (2)VirgCSan
 
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...JaenFrankcezco
 
Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Rodrigo Zottola Pareja
 
Introducción-a-Microsoft.NET-[parte2]
Introducción-a-Microsoft.NET-[parte2]Introducción-a-Microsoft.NET-[parte2]
Introducción-a-Microsoft.NET-[parte2]Kevin Reaño
 
Desarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend FrameworkDesarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend Frameworkricsoc
 
Net capitulo I - fundamentos
Net   capitulo I - fundamentosNet   capitulo I - fundamentos
Net capitulo I - fundamentosredtacna
 

Similar a Desarrollo de aplicaciones MVC con Zend Framework (20)

Zend Framework - MVC - 2008
Zend Framework - MVC - 2008Zend Framework - MVC - 2008
Zend Framework - MVC - 2008
 
Zend Framework2
Zend Framework2Zend Framework2
Zend Framework2
 
Taller de zan php
Taller de zan phpTaller de zan php
Taller de zan php
 
ZF Arquitecturas Escalables - Fesoli 2010
ZF Arquitecturas Escalables - Fesoli 2010ZF Arquitecturas Escalables - Fesoli 2010
ZF Arquitecturas Escalables - Fesoli 2010
 
Introducción a Zend Framework
Introducción a Zend FrameworkIntroducción a Zend Framework
Introducción a Zend Framework
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring Insight
 
Zend Framework Taller de SeeD Software, Colombia
Zend Framework Taller de SeeD Software, ColombiaZend Framework Taller de SeeD Software, Colombia
Zend Framework Taller de SeeD Software, Colombia
 
Herramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloHerramientas Ágiles para Desarrollo
Herramientas Ágiles para Desarrollo
 
Herramientas agilesdesarrollo
Herramientas agilesdesarrolloHerramientas agilesdesarrollo
Herramientas agilesdesarrollo
 
Backend middleware frontend (2)
Backend middleware frontend (2)Backend middleware frontend (2)
Backend middleware frontend (2)
 
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
 
Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Introdución a aplicaciones web en java
Introdución a aplicaciones web en java
 
Introducción-a-Microsoft.NET-[parte2]
Introducción-a-Microsoft.NET-[parte2]Introducción-a-Microsoft.NET-[parte2]
Introducción-a-Microsoft.NET-[parte2]
 
4 Jhs J Developer Adf
4  Jhs J Developer Adf4  Jhs J Developer Adf
4 Jhs J Developer Adf
 
Tutorial hacer un crud con prado
Tutorial hacer un crud con pradoTutorial hacer un crud con prado
Tutorial hacer un crud con prado
 
Arquitectura java web
Arquitectura java webArquitectura java web
Arquitectura java web
 
Spring
SpringSpring
Spring
 
Desarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend FrameworkDesarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend Framework
 
Net capitulo I - fundamentos
Net   capitulo I - fundamentosNet   capitulo I - fundamentos
Net capitulo I - fundamentos
 
Tema 1
Tema 1Tema 1
Tema 1
 

Más de SIIS UNJBG, Tacna

Exposicion Sobre Aspectos Legales En La Distribucion Canon En Tacna
Exposicion Sobre Aspectos Legales En La  Distribucion Canon En TacnaExposicion Sobre Aspectos Legales En La  Distribucion Canon En Tacna
Exposicion Sobre Aspectos Legales En La Distribucion Canon En TacnaSIIS UNJBG, Tacna
 
Teoria económica para proyectos
Teoria económica para proyectosTeoria económica para proyectos
Teoria económica para proyectosSIIS UNJBG, Tacna
 
Cap II Proceso economico necesidades y bienes
Cap II Proceso economico necesidades y bienesCap II Proceso economico necesidades y bienes
Cap II Proceso economico necesidades y bienesSIIS UNJBG, Tacna
 
Introduccion Al Analisis Economico
Introduccion Al Analisis EconomicoIntroduccion Al Analisis Economico
Introduccion Al Analisis EconomicoSIIS UNJBG, Tacna
 
Soluciones Web en software libre aplicado a Pymes de educacion y salud
Soluciones Web en software libre aplicado a Pymes de educacion y saludSoluciones Web en software libre aplicado a Pymes de educacion y salud
Soluciones Web en software libre aplicado a Pymes de educacion y saludSIIS UNJBG, Tacna
 
Perfiles Internacionales de la Carrera de Computación
Perfiles Internacionales de la Carrera de Computación Perfiles Internacionales de la Carrera de Computación
Perfiles Internacionales de la Carrera de Computación SIIS UNJBG, Tacna
 
Tecnologia Registral SUNARP
 Tecnologia  Registral SUNARP Tecnologia  Registral SUNARP
Tecnologia Registral SUNARPSIIS UNJBG, Tacna
 
Reconocimientos de Patrones en Imagenes Digitales
Reconocimientos de Patrones en Imagenes DigitalesReconocimientos de Patrones en Imagenes Digitales
Reconocimientos de Patrones en Imagenes DigitalesSIIS UNJBG, Tacna
 

Más de SIIS UNJBG, Tacna (11)

Exposicion Sobre Aspectos Legales En La Distribucion Canon En Tacna
Exposicion Sobre Aspectos Legales En La  Distribucion Canon En TacnaExposicion Sobre Aspectos Legales En La  Distribucion Canon En Tacna
Exposicion Sobre Aspectos Legales En La Distribucion Canon En Tacna
 
Teoria económica para proyectos
Teoria económica para proyectosTeoria económica para proyectos
Teoria económica para proyectos
 
Cap III
Cap IIICap III
Cap III
 
Cap II Proceso economico necesidades y bienes
Cap II Proceso economico necesidades y bienesCap II Proceso economico necesidades y bienes
Cap II Proceso economico necesidades y bienes
 
Introduccion Al Analisis Economico
Introduccion Al Analisis EconomicoIntroduccion Al Analisis Economico
Introduccion Al Analisis Economico
 
Soluciones Web en software libre aplicado a Pymes de educacion y salud
Soluciones Web en software libre aplicado a Pymes de educacion y saludSoluciones Web en software libre aplicado a Pymes de educacion y salud
Soluciones Web en software libre aplicado a Pymes de educacion y salud
 
Perfiles Internacionales de la Carrera de Computación
Perfiles Internacionales de la Carrera de Computación Perfiles Internacionales de la Carrera de Computación
Perfiles Internacionales de la Carrera de Computación
 
Sistema Registral SUNARP
Sistema Registral SUNARPSistema Registral SUNARP
Sistema Registral SUNARP
 
Struts en Java
Struts en JavaStruts en Java
Struts en Java
 
Tecnologia Registral SUNARP
 Tecnologia  Registral SUNARP Tecnologia  Registral SUNARP
Tecnologia Registral SUNARP
 
Reconocimientos de Patrones en Imagenes Digitales
Reconocimientos de Patrones en Imagenes DigitalesReconocimientos de Patrones en Imagenes Digitales
Reconocimientos de Patrones en Imagenes Digitales
 

Último

Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 

Último (10)

Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 

Desarrollo de aplicaciones MVC con Zend Framework

  • 1. Zend Framework Desarrollo de aplicaciones MVC en PHP Juan Carbajal Paxi 1
  • 2. Agenda Introducción. MVC. Zend Framework. Aplicación. Librerías. 2
  • 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. ¿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. 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. ¿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. 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. Enfoque de Zend Framework Simple ya es poderoso. Foco en las tareas. Alta productividad. Costo efectivo. Simples tareas para configurar aplicaciones. 9
  • 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. MVC 11
  • 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. 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
  • 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. 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. 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
  • 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. 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
  • 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
  • 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
  • 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
  • 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. 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. Ventajas de Zend Framework Claridad de diseño. Modularidad eficiente. Múltiples vistas y presentaciones. Extensible y configurable. DIstribuible. 30
  • 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. 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. 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. 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. 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. 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. 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