Zend Framework - MVC - 2008

40
1 Zend Framework Desarrollo de aplicaciones MVC en PHP Desarrollo de aplicaciones MVC en PHP Juan Carbajal Paxi Juan Carbajal Paxi

description

Desarrollo de aplicaciones MVC con Zend Framework.

Transcript of Zend Framework - MVC - 2008

Page 1: Zend Framework - MVC - 2008

1

Zend FrameworkDesarrollo de aplicaciones MVC en PHPDesarrollo de aplicaciones MVC en PHP

Juan Carbajal PaxiJuan Carbajal Paxi

Page 2: Zend Framework - MVC - 2008

2

Agenda

Introducción.MVC.Zend Framework.Aplicación.Librerías.

Page 3: Zend Framework - MVC - 2008

3

Introducción

Page 4: Zend Framework - MVC - 2008

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.

Page 5: Zend Framework - MVC - 2008

5

¿Qué frameworks existen?

Nombre Lenguaje LicenciaRubyOnRails Ruby MITStruts Java/j2ee ApacheSpring Framework Java/j2ee ApacheTapestry Java/j2ee ApacheAurora Java/j2ee ApacheCatalyst Perl GPLCakePHP PHP MITCodeIgniter PHP GNU/GPLKumbia PHP GNU/GPLSymfony PHP MITSeagull PHP MITQcodo PHP MITZend PHP MITZope3 Python ZPLTurbogears Python VariasDjango Python BSDMonoRails .NET ApacheSpring .Net .NET Apache

Page 6: Zend Framework - MVC - 2008

6

Frameworks PHP

Zend Cake Code Igniter SymfonyPHP5 Si No No Si

No Si Si SiInternacionalización Oficial Si En progreso No Si

No No No SiRequiere Configuración Si No No SiProveedor ORM comprensible No Si No Si (Propel)Buena documentación y tutoriales Si Si Si SiTesteo de unidades Si No No SiSoporte de Comunidad Si Si Si Si

Estructura de directorios predefinida

Scripts de línea de comandos para la instalación del framework

Page 7: Zend Framework - MVC - 2008

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/

Page 8: Zend Framework - MVC - 2008

8

Metas de Zend Framework

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.

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

Page 9: Zend Framework - MVC - 2008

9

Enfoque de Zend Framework

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

Page 10: Zend Framework - MVC - 2008

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

Page 11: Zend Framework - MVC - 2008

11

MVC

Page 12: Zend Framework - MVC - 2008

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.

Page 13: Zend Framework - MVC - 2008

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 DatosControlador -> Modelo -> Vista

Page 14: Zend Framework - MVC - 2008

14

Modelo Vista Controlador

Page 15: Zend Framework - MVC - 2008

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

Page 16: Zend Framework - MVC - 2008

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

Page 17: Zend Framework - MVC - 2008

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.

Page 18: Zend Framework - MVC - 2008

18

Modelo Vista Controlador

Page 19: Zend Framework - MVC - 2008

19

Interacción MVC

Controlador <-> VistaEl controlador y la vista pueden interactuar

Controlador <-> ModeloEl controlador puede extraer datos de el modelo para decisiones o puede modificar el modelo.

Vista <- ModeloLa vista puede acceder al modelo para recibir datos, pero no para escribir en el.

Page 20: Zend Framework - MVC - 2008

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.

Page 21: Zend Framework - MVC - 2008

21

Zend Framework

Page 22: Zend Framework - MVC - 2008

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

Page 23: Zend Framework - MVC - 2008

23

Modelo: Zend_Db

Page 24: Zend Framework - MVC - 2008

24

Vista: Zend_View

Usa PHP como lenguaje de plantillaAsigna 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.

Page 25: Zend Framework - MVC - 2008

25

Vista: Zend_View

Page 26: Zend Framework - MVC - 2008

26

Controlador: Zend_Controller

Bootstrap:Instancia de Zend_Controller_FrontConfiguració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 despachodespacha acción (Zend_Controller_Dispatcher_Standard)

controlador instanciado (Zend_Controller_Action)llamada al método acción

Envía respuesta (Zend_Controller_Response_Abstract)

Page 27: Zend Framework - MVC - 2008

27

Controlador: Zend_Controller_Action

Page 28: Zend Framework - MVC - 2008

28

Estructura de Archivos

Estructura de archivos/www

/app/models/controller/views

/helpers/scripts

/index/library

/Zend/public

.htaccessindex.php/javascript/css

Page 29: Zend Framework - MVC - 2008

29

Estructura de Archivos

Estructura de archivos (modular)/www

/app/models/modules

/default/controller/views/helpers/filters/scripts

/index/library

/Zend/public

.htaccessindex.php/javascript/css

Page 30: Zend Framework - MVC - 2008

30

Ventajas de Zend Framework

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

Page 31: Zend Framework - MVC - 2008

31

Aplicación

Page 32: Zend Framework - MVC - 2008

32

Librerías

Page 33: Zend Framework - MVC - 2008

33

Componentes

MVCBase de DatosI18NAutentificaciónServicios WebCorreo, Formato, BúsquedaUtilidad

Zend_ControllerControlador FrontalRuteoManipulación de accionesPlugins y HelpersSolicitudesRespuestas

Zend_ViewPlantilla de clase PHPHelpersFiltros

Zend_Json (ajax)

Page 34: Zend Framework - MVC - 2008

34

Componentes

MVCBase de DatosI18NAutentificaciónServicios WebCorreo, Formato, BúsquedaUtilidad

Zend_Db_AdapterIBM Db2, Oracle, MySQL, MS Sql Server, PostgreSQL, Firebird, Sqlite.

Zend_Db_ProfilerZend_Db_SelectZend_Db_Table

Zend_Db_Table_RowsetZend_Db_Table_RowActiveRecord

Page 35: Zend Framework - MVC - 2008

35

Componentes

MVCBase de DatosI18NAutentificaciónServicios WebCorreo, Formato, BúsquedaUtilidad

Zend_LocaleZend_Translate

Array, CSV, GetText, QT, Tmx, Xliff

Zend_DateZend_Measure

Page 36: Zend Framework - MVC - 2008

36

Componentes

MVCBase de DatosI18NAutentificaciónServicios WebCorreo, Formato, BúsquedaUtilidad

Zend_AuthDbTableDigestHttp

Zend_SessionPersistente.

Zend_AclManejo de roles y privilegios

Page 37: Zend Framework - MVC - 2008

37

Componentes

MVCBase de DatosI18NAutentificaciónServicios WebCorreo, Formato, BúsquedaUtilidad

Zend_Http_ClientZend_Rest_ClientZend_Service

Akimef, Amazon, Flickr, Simpy, Audioscrobbler, Strikelron, Delicious, Yahoo

Zend_Feed (RSS y Atom)Zend_Gdata (Google Data Api)Zend_XmlRpc_Client

Page 38: Zend Framework - MVC - 2008

38

Componentes

MVCBase de DatosI18NAutentificaciónServicios WebCorreo, Formato, BusquedaUtilidad

Zend_MailZend_Mime

Lee o envia correosZend_Pdf

Lee, edita y crea documentos PDF

Zend_Search_LuceneIngieneria de BusquedaCompatibilidad con Apache Lucene

Page 39: Zend Framework - MVC - 2008

39

Componentes

MVCBase de DatosI18NAutentificaciónServicios WebCorreo, Formato, BusquedaUtilidad

Zend_CacheZend_ConfigZend_Console_GetoptZend_FilterZend_Filter_InputZend_LoaderZend_Log

Page 40: Zend Framework - MVC - 2008

40

¿Preguntas?