Mvc
-
Upload
siis-unjbg-tacna -
Category
Technology
-
view
10.125 -
download
3
description
Transcript of Mvc
![Page 1: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/1.jpg)
1
Zend FrameworkDesarrollo de aplicaciones MVC en PHPDesarrollo de aplicaciones MVC en PHP
Juan Carbajal PaxiJuan Carbajal Paxi
![Page 2: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/2.jpg)
2
Agenda
Introducción.MVC.Zend Framework.Aplicación.Librerías.
![Page 3: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/3.jpg)
3
Introducción
![Page 4: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/4.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/5.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/6.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/7.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/8.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/9.jpg)
9
Enfoque de Zend Framework
Simple ya es poderoso.Foco en las tareas.Alta productividad.Costo efectivo.Simples tareas para configurar aplicaciones.
![Page 10: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/10.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/11.jpg)
11
MVC
![Page 12: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/12.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/13.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/14.jpg)
14
Modelo Vista Controlador
![Page 15: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/15.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/16.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/17.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/18.jpg)
18
Modelo Vista Controlador
![Page 19: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/19.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/20.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/21.jpg)
21
Zend Framework
![Page 22: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/22.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/23.jpg)
23
Modelo: Zend_Db
![Page 24: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/24.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/25.jpg)
25
Vista: Zend_View
![Page 26: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/26.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/27.jpg)
27
Controlador: Zend_Controller_Action
![Page 28: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/28.jpg)
28
Estructura de Archivos
Estructura de archivos/www
/app/models/controller/views
/helpers/scripts
/index/library
/Zend/public
.htaccessindex.php/javascript/css
![Page 29: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/29.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/30.jpg)
30
Ventajas de Zend Framework
Claridad de diseño.Modularidad eficiente.Múltiples vistas y presentaciones.Extensible y configurable.DIstribuible.
![Page 31: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/31.jpg)
31
Aplicación
![Page 32: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/32.jpg)
32
Librerías
![Page 33: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/33.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/34.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/35.jpg)
35
Componentes
MVCBase de DatosI18NAutentificaciónServicios WebCorreo, Formato, BúsquedaUtilidad
Zend_LocaleZend_Translate
Array, CSV, GetText, QT, Tmx, Xliff
Zend_DateZend_Measure
![Page 36: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/36.jpg)
36
Componentes
MVCBase de DatosI18NAutentificaciónServicios WebCorreo, Formato, BúsquedaUtilidad
Zend_AuthDbTableDigestHttp
Zend_SessionPersistente.
Zend_AclManejo de roles y privilegios
![Page 37: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/37.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/38.jpg)
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: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/39.jpg)
39
Componentes
MVCBase de DatosI18NAutentificaciónServicios WebCorreo, Formato, BusquedaUtilidad
Zend_CacheZend_ConfigZend_Console_GetoptZend_FilterZend_Filter_InputZend_LoaderZend_Log
![Page 40: Mvc](https://reader034.fdocuments.mx/reader034/viewer/2022051816/546b2de6af795902048b583a/html5/thumbnails/40.jpg)
40
¿Preguntas?