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

NET .¿Qué frameworks existen? Nombre RubyOnRails Struts Spring Framework Tapestry Aurora Catalyst CakePHP CodeIgniter Kumbia Symfony Seagull Qcodo Zend Zope3 Turbogears Django MonoRails Spring .NET Licencia MIT Apache Apache Apache Apache GPL MIT GNU/GPL GNU/GPL MIT MIT MIT MIT ZPL Varias BSD Apache Apache 5 .Net Lenguaje Ruby Java/j2ee Java/j2ee Java/j2ee Java/j2ee Perl PHP PHP PHP PHP PHP PHP PHP Python Python Python .

Frameworks PHP Zend PHP5 Estructura de directorios predefinida Internacionalización Oficial Scripts de línea de comandos para la instalación del framework Requiere Configuración Proveedor ORM comprensible Buena documentación y tutoriales Testeo de unidades Soporte de Comunidad Si No Si No Si No Si Si Si No Cake Code Igniter No Symfony Si Si Si Si Si Si (Propel) Si Si Si Si Si En progreso No No No Si Si No Si No No No Si No Si 6 .

zend. Siguiendo el espíritu de PHP. http://framework.¿Por qué Zend Framework? Zend Framework provee un esqueleto de alta calidad para el desarrollo de Aplicaciones Web y Servicios Web. fácil uso y potente funcionalidad. seguras y modernas. enfocándose en cambios de construcción de aplicaciones web robustas.com/ 7 .

8 . Simple es fácil de mantener. pero no mas simples. (Albert Einstein) Simple es fácil de usar. Simple es mas estable y menos propenso a errores.Metas de Zend Framework Piensen en hacer las cosas simples. Simple es mas compatible.

Simples tareas para configurar aplicaciones. Alta productividad.Enfoque de Zend Framework Simple ya es poderoso. 9 . Foco en las tareas. Costo efectivo.

Bien documentada. OO. Diseño extensible. PHP 5.Caracteristicas de Zend Framework Librería basada en componentes que resuelve el 80% de problemas comunes. Encapsula las mejores prácticas. Arquitectura flexible. Soporte comercial (Zend) Soporte en Zend Studio/Eclipse (PDT) Licencia BSD 10 .

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.

Originalmente fue implementado como un mapa tradicional de ingreso: Ingreso de Datos -> Proceso -> Salida de Datos Controlador -> Modelo -> Vista 13 .Modelo Vista Controlador Es un patrón de arquitectura de software que divide una aplicación en tres capas.

Modelo Vista Controlador 14 .

Responde a solicitudes e instrucciones de cambio. Representa datos y su actividad. No tiene conocimiento sobre el controlador o la vista.Modelo Es la representación especifica de datos y lógica de datos que asegura la integridad y herencia de datos. Ejemplo UML -> SQL -> PHP Object 15 .

noticias. servicios.xml.Vista Son un conjunto de scripts que estructuran la representación de datos en la salida (pantalla.html. comentarios. impresoras). Ejm: lista.html 16 . reporte.pdf. Captura datos. Es la forma de visualización del estado del modelo.

y comandando el modelo y/o vista para cambiar apropiadamente. 17 . Es el despachador de respuestas y controlador de flujo.Controlador Manejador de eventos que provocan cambios en el modelo y/o la vista. Ofrece facilidades para cambiar el estado del modelo. interpretando eventos del ratón y del teclado.

Modelo Vista Controlador 18 .

19 . pero no para escribir en el.Interacción MVC Controlador <-> Vista Controlador <-> Modelo Vista <. La vista puede acceder al modelo para recibir datos.Modelo El controlador y la vista pueden interactuar El controlador puede extraer datos de el modelo para decisiones o puede modificar el modelo.

Ayuda a equipos de desarrollo en centrarse en áreas especificas. permitiendo un código mantenible. 20 . Mayor facilidad para añadir fuentes de datos y tipos de clientes. la representación y el control de eventos. Facilita el mantenimiento y modificación de la aplicación. Decrementa la duplicación de código. Centraliza el control de datos.Ventajas Separa la manipulación de datos.

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. Beneficios: Código portable. Fácil asignación de base de datos para todas las tablas. Tabla de conexión directa vía Zend_Db_Table. OO 22 . Provee opcional consulta de perfiles.

Modelo: Zend_Db 23 .

Tidy. XML. etc. Filtros para convertir formatos HTML a PDF. Accede a las variables con notación de objetos $this->var El formato seleccionado es utilizado en la respuesta. Ventajas: todo el PHP a su disposición. Helpers: Filters: Registro de helpers en la carpeta de la vista. JSON. 24 .Vista: Zend_View Usa PHP como lenguaje de plantilla Asigna variables en el objeto Zend_View. Variables grabadas en la plantilla.

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 .

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

php /javascript /css /library /public 29 .Estructura de Archivos Estructura de archivos (modular) /www /app /models /modules /default /controller /views /helpers /filters /scripts /index /Zend .htaccess index.

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

Aplicación 31 .

Librerías 32 .

Búsqueda Utilidad Zend_Controller Controlador Frontal Ruteo Manipulación de acciones Plugins y Helpers Solicitudes Respuestas Zend_View Plantilla de clase PHP Helpers Filtros Zend_Json (ajax) 33 .Componentes MVC Base de Datos I18N Autentificación Servicios Web Correo. Formato.

Oracle. Formato. MySQL. MS Sql Server. Firebird. Zend_Db_Profiler Zend_Db_Select Zend_Db_Table Zend_Db_Table_Rowset Zend_Db_Table_Row ActiveRecord 34 .Componentes MVC Base de Datos I18N Autentificación Servicios Web Correo. Búsqueda Utilidad Zend_Db_Adapter IBM Db2. PostgreSQL. Sqlite.

Formato. Xliff Zend_Date Zend_Measure 35 . QT. CSV. GetText. Tmx. Búsqueda Utilidad Zend_Locale Zend_Translate Array.Componentes MVC Base de Datos I18N Autentificación Servicios Web Correo.

Componentes MVC Base de Datos I18N Autentificación Servicios Web Correo. Zend_Acl Manejo de roles y privilegios 36 . Búsqueda Utilidad Zend_Auth DbTable Digest Http Zend_Session Persistente. Formato.

Delicious. Amazon. Audioscrobbler.Componentes MVC Base de Datos I18N Autentificación Servicios Web Correo. Flickr. Strikelron. Búsqueda Utilidad Zend_Http_Client Zend_Rest_Client Zend_Service Akimef. Formato. Simpy. Yahoo Zend_Feed (RSS y Atom) Zend_Gdata (Google Data Api) Zend_XmlRpc_Client 37 .

edita y crea documentos PDF Zend_Search_Lucene Ingieneria de Busqueda Compatibilidad con Apache Lucene 38 .Componentes MVC Base de Datos I18N Autentificación Servicios Web Correo. Busqueda Utilidad Zend_Mail Zend_Mime Lee o envia correos Zend_Pdf Lee. Formato.

Formato. Busqueda Utilidad Zend_Cache Zend_Config Zend_Console_Getopt Zend_Filter Zend_Filter_Input Zend_Loader Zend_Log 39 .Componentes MVC Base de Datos I18N Autentificación Servicios Web Correo.

¿Preguntas? 40 .

Sign up to vote on this title
UsefulNot useful