View
10.125
Download
3
Category
Preview:
DESCRIPTION
Citation preview
1
Zend FrameworkDesarrollo de aplicaciones MVC en PHPDesarrollo de aplicaciones MVC en PHP
Juan Carbajal PaxiJuan Carbajal Paxi
2
Agenda
Introducción.MVC.Zend Framework.Aplicación.Librerías.
3
Introducción
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.
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
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
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/
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)
9
Enfoque de Zend Framework
Simple ya es poderoso.Foco en las tareas.Alta productividad.Costo efectivo.Simples tareas para configurar aplicaciones.
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
11
MVC
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.
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
14
Modelo Vista Controlador
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
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
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.
18
Modelo Vista Controlador
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.
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.
21
Zend Framework
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
23
Modelo: Zend_Db
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.
25
Vista: Zend_View
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)
27
Controlador: Zend_Controller_Action
28
Estructura de Archivos
Estructura de archivos/www
/app/models/controller/views
/helpers/scripts
/index/library
/Zend/public
.htaccessindex.php/javascript/css
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
30
Ventajas de Zend Framework
Claridad de diseño.Modularidad eficiente.Múltiples vistas y presentaciones.Extensible y configurable.DIstribuible.
31
Aplicación
32
Librerías
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)
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
35
Componentes
MVCBase de DatosI18NAutentificaciónServicios WebCorreo, Formato, BúsquedaUtilidad
Zend_LocaleZend_Translate
Array, CSV, GetText, QT, Tmx, Xliff
Zend_DateZend_Measure
36
Componentes
MVCBase de DatosI18NAutentificaciónServicios WebCorreo, Formato, BúsquedaUtilidad
Zend_AuthDbTableDigestHttp
Zend_SessionPersistente.
Zend_AclManejo de roles y privilegios
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
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
39
Componentes
MVCBase de DatosI18NAutentificaciónServicios WebCorreo, Formato, BusquedaUtilidad
Zend_CacheZend_ConfigZend_Console_GetoptZend_FilterZend_Filter_InputZend_LoaderZend_Log
40
¿Preguntas?
Recommended