Frameworks MVC para el Desarrollo Web - Symfony
Esteban Saavedra López
CEO Opentelematics Internacional Bolivia
[email protected]
http://jesaavedra.opentelematics.org
http://esteban.profesionales.org
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
1 / 33
Tabla de Contenidos
1
Introducción a los Frameworks
2 Patron MVC
3 Symfony
4 Características de un Proyecto Symfony
5 Creación de un proyecto
6 Demostración
7 Conclusiones
8 Referencias
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
2 / 33
Introducción a los Frameworks
Que es un Framework?
Es una estructura de soporte definida en la cual otro proyecto de
software puede ser organizado y desarrollado.
Se han convertido en la piedra angular de la moderna ingeniería
del software
Es una estructura software compuesta de componentes
personalizables e intercambiables para el desarrollo de una aplicación.
En otras palabras, es una aplicación genérica incompleta y
configurable a la que podemos aadirle las últimas piezas para
construir una aplicación concreta.
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
3 / 33
Introducción a los Frameworks
Cual el objetivo de un framework?
Desarrollo rápido
Desarrollo estructurado
Reutilización de código
Disminuir el esfuerzo en el desarrollo
Aprovechamos las funcionalidades ya implementadas.
No debemos reinventar la rueda
Nos concetramos directamente en la solución del problema
Tener como aliado a las metodologías de desarrollo Agíles (XP,
AD)
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
4 / 33
Patrón MVC
Patron MVC
Modelo
Controlador
Vista
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
5 / 33
Que es Symfony
Symfony
Es un framework para el desarrollo de aplicaciones web
Es la respuesta de php para Ruby on Rails
Permite el desarrollo de aplicaciones web de forma rápida
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
6 / 33
Filosofía de Symfony
Symfony
Reutilización de código
Desarrollar aplicaciones web de forma rápida, sencilla y divertida
Utilizar los mejores componentes actualmente disponibles
Combinar todo en un paquete fácil de usar
Symfony provee el pegamento, de tal forma que uds no haga el suyo.
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
7 / 33
Por que Symfony
Symfony
Se basa en el patrón MVC
Tiene todo lo necesario para desarrollar aplicaciones Web
Soporta Ajax
Posee buena documentación
Es multiplataforma
Posee una numerosa comunidad de desarrolladores y usuarios
Inspirado en Ruby on Rails (Padrino de la mayoría de los
Frameworks)
Está en constante desarrollo
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
8 / 33
Componentes de Symfony
Symfony
Propel: ORM para el acceso a
Base de datos
Creole: Maneja la capa de
abstracción de BD
Phing: Mapeador XML
Pake: Gestión de ejecución de
Scripts
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
9 / 33
Instalación de Symfony
Symfony
Utilizando Sandbox
Obtener: http://www.symfony-project.com/get/sf_sandbox.tgz
Basta con descomprimir y publicarlo en el servidr web
Mediante PEAR
pear channel-discover pear.symfony-project.com
pear remote-list -c symfony
pear install symfony/symfony
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
10 / 33
Características de un Proyecto Symfony
Estructura de un proyecto de Symfony
Symfony proporciona una estructura jerárquica:
Proyecto
Aplicación
Módulo
Acción
Vista
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
11 / 33
Características de un Proyecto Symfony
Aplicaciones
Todo proyecto contiene una o más aplicaciones
Dentro de un mismo proyecto, las aplicaciones:
Comparten el mismo modelo de datos
Poseen vistas independientes
No comparten sesiones de usuario
Limitación en deducir URLs de las demás aplicaciones
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
12 / 33
Características de un Proyecto Symfony
Módulos
Una aplicación está compuesta por un conjunto de módulos
Un módulo agrupa a un conjunto de peticiones
Dentro de una misma aplicación, los módulos:
Pueden compartir la misma decoración
Comparten la misma sesión
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
13 / 33
Características de un Proyecto Symfony
Acciones
Contienen lógica de aplicación
Son implementadas como métodos
Cada petición HTTP resulta en la invocación de una acción
Dicha traducción se denomina routing, y se basa en la URL
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
14 / 33
Características de un Proyecto Symfony
Vistas
Contienen la lógica de presentación
Se implementan como plantillas PHP/HTML
El resultado de la acción determina qué vista se procesa
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
15 / 33
Características de un Proyecto Symfony
Entornos
Por naturaleza Synfony, prevee la existencia de 3 entronos:
DEV: Entorno de desarrollo
TEST: Entorno de pruebas
PROD: Entorno de Producción
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
16 / 33
Características de un Proyecto Symfony
Creación de un proyecto
Instrucción
symfony init-project libros
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
17 / 33
Características de un Proyecto Symfony
Que generó esto?
Una estructura jerárquica de directorios:
Apps Código de las aplicaciones
Batch Scripts para la línea de comandos
Cache Caché de la conguración
Cong Conguración global del proyecto
Data Schema SQL, datos de prueba
Lib El modelo y bibliotecas de terceros
Log Registros de actividad de Symfony
Plugins Plugins instalados para la el proyecto
Test Pruebas de testeo
Web Raíz web: CSSs, JSs, etc.
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
18 / 33
Creación de un proyecto
Pasos para crear un proyecto
1 Crear el proyecto
2 Crear la aplicación
3 Crear el código del modelo de datos
4 Generar el modelo de datos
5 Crear la base de datos (SQL)
6 Generar los CRUDs
7 Adecuar los templates (CSS y/o JavaScript)
8 Publicar la Aplicación
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
19 / 33
Creación de un proyecto
1. Creación de un proyecto
Instrucción
symfony init-project libros
Detalles del proyecto
/home/jesaavedra/aplic_web/symfony/libros/batch
/home/jesaavedra/aplic_web/symfony/libros/test
/home/jesaavedra/aplic_web/symfony/libros/test/unit
/home/jesaavedra/aplic_web/symfony/libros/test/functional
/home/jesaavedra/aplic_web/symfony/libros/web/images
/home/jesaavedra/aplic_web/symfony/libros/web/js
/home/jesaavedra/aplic_web/symfony/libros/web/robots.txt
/home/jesaavedra/aplic_web/symfony/libros/web/uploads
>> dir+
>> dir+
>> dir+
>> dir+
.....
>> dir+
>> dir+
>> file+
>> dir+
....
>> dir+
>> dir+
>> file+
>> file+
....
>> tokens
>> tokens
>> tokens
>> chmod 777 /home/jesaavedra/aplic_web/symfony/libros/cache
>> chmod 777 /home/jesaavedra/aplic_web/symfony/libros/log
.....
/home/jesaavedra/aplic_web/symfony/libros/plugins
/home/jesaavedra/aplic_web/symfony/libros/config
/home/jesaavedra/aplic_web/symfony/libros/config/schema.yml
/home/jesaavedra/aplic_web/symfony/libros/config/databases.yml
/home/jesaavedra/aplic_web/symfony/libros/config/propel.ini
/home/jesaavedra/aplic_web/symfony/libros/config/propel.ini
/home/jesaavedra/aplic_web/symfony/libros/config/config.php
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
20 / 33
Creación de un proyecto
2. Creación de la aplicación
Instrucción
symfony init-app libros
Detalles de la aplicac’on
/home/jesaavedra/aplic_web/symfony/libros/apps/libros/config
/home/jesaavedra/aplic_web/symf...apps/libros/config/security.yml
/home/jesaavedra/aplic_web/symf...bros/apps/libros/config/app.yml
/home/jesaavedra/aplic_web/symf...os/apps/libros/config/cache.yml
/home/jesaavedra/aplic_web/symf...ros/apps/libros/config/i18n.yml
/home/jesaavedra/aplic_web/symf...pps/libros/config/factories.yml
/home/jesaavedra/aplic_web/symf.../apps/libros/config/routing.yml
/home/jesaavedra/aplic_web/symf...s/apps/libros/config/config.php
/home/jesaavedra/aplic_web/symf...apps/libros/config/settings.yml
>> dir+
>> file+
>> file+
>> file+
>> file+
>> file+
>> file+
>> file+
>> file+
.....
>> tokens
>> file+
>> file+
>> tokens
>> tokens
>> chmod 777 /home/jesaavedra/aplic_web/symfony/libros/cache
>> chmod 777 /home/jesaavedra/aplic_web/symfony/libros/log
>> chmod 777 /home/jesaavedra/aplic_web/symfony/libros/web/uploads
>> chmod 777 /home/jesaavedra/aplic_web/symfony/libros/symfony
>> chmod 777 web/uploads/assets
>> dir+
/home/jesaavedra/aplic_web/symf...apps/libros/config/settings.yml
/home/jesaavedra/aplic_web/symfony/libros/web/index.php
/home/jesaavedra/aplic_web/symfony/libros/web/libros_dev.php
/home/jesaavedra/aplic_web/symfony/libros/web/index.php
/home/jesaavedra/aplic_web/symfony/libros/web/libros_dev.php
/home/jesaavedra/aplic_web/symfony/libros/test/functional/libros
Esteban Saavedra López (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony
Nov. 2007
21 / 33
Creación de un proyecto
3. Crear el código del modelo de dat
Comentarios de: Frameworks MVC para el Desarrollo Web - Symfony (0)
No hay comentarios