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

Similar a Zend Framework - MVC - 2008

Zend Framework2
Zend Framework2Zend Framework2
Zend Framework2uni
 
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
 
ZF Arquitecturas Escalables - Fesoli 2010
ZF Arquitecturas Escalables - Fesoli 2010ZF Arquitecturas Escalables - Fesoli 2010
ZF Arquitecturas Escalables - Fesoli 2010Juan Carbajal
 
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
 
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
 
Herramientas agilesdesarrollo
Herramientas agilesdesarrolloHerramientas agilesdesarrollo
Herramientas agilesdesarrollogabrielpiccoli
 
Introducción a Zend Framework
Introducción a Zend FrameworkIntroducción a Zend Framework
Introducción a Zend FrameworkIrontec
 
Trabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NETTrabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NETJavier Roig
 
Net capitulo I - fundamentos
Net   capitulo I - fundamentosNet   capitulo I - fundamentos
Net capitulo I - fundamentosredtacna
 
Backend middleware frontend (2)
Backend middleware frontend (2)Backend middleware frontend (2)
Backend middleware frontend (2)VirgCSan
 
Migracion a Visual Basic .NET
Migracion a Visual Basic .NETMigracion a Visual Basic .NET
Migracion a Visual Basic .NETV Sanchez
 

Similar a Zend Framework - MVC - 2008 (20)

Mvc
MvcMvc
Mvc
 
Zend Framework2
Zend Framework2Zend Framework2
Zend Framework2
 
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
 
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-Microsoft.NET-[parte2]
Introducción-a-Microsoft.NET-[parte2]Introducción-a-Microsoft.NET-[parte2]
Introducción-a-Microsoft.NET-[parte2]
 
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
 
Herramientas agilesdesarrollo
Herramientas agilesdesarrolloHerramientas agilesdesarrollo
Herramientas agilesdesarrollo
 
Introducción a Zend Framework
Introducción a Zend FrameworkIntroducción a Zend Framework
Introducción a Zend Framework
 
Tema 1
Tema 1Tema 1
Tema 1
 
Trabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NETTrabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NET
 
Net capitulo I - fundamentos
Net   capitulo I - fundamentosNet   capitulo I - fundamentos
Net capitulo I - fundamentos
 
Spring
SpringSpring
Spring
 
Backend middleware frontend (2)
Backend middleware frontend (2)Backend middleware frontend (2)
Backend middleware frontend (2)
 
Arquitectura java web
Arquitectura java webArquitectura java web
Arquitectura java web
 
Migracion a Visual Basic .NET
Migracion a Visual Basic .NETMigracion a Visual Basic .NET
Migracion a Visual Basic .NET
 
4 Jhs J Developer Adf
4  Jhs J Developer Adf4  Jhs J Developer Adf
4 Jhs J Developer Adf
 
Poc 2
Poc 2Poc 2
Poc 2
 
5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web
 
Tutorial hacer un crud con prado
Tutorial hacer un crud con pradoTutorial hacer un crud con prado
Tutorial hacer un crud con prado
 

Último

Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 

Último (20)

Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 

Zend Framework - MVC - 2008

  • 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