Este documento presenta una introducción al framework PHP Zend Framework. Explica brevemente los conceptos de MVC y por qué usar un framework. Luego describe las características clave de Zend Framework como su enfoque en componentes, arquitectura flexible, compatibilidad con PHP 5 y diseño extensible. Finalmente, menciona algunas de las principales bibliotecas de Zend Framework como Zend_Controller, Zend_View, Zend_Db y Zend_Auth.
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
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
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