![Page 1: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/1.jpg)
Desarrollo de aplicaciones web con symfony
Matias MontenegroLuciano Andrade
![Page 2: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/2.jpg)
¿Que es symfony?
![Page 3: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/3.jpg)
¿Que es symfony?
●Un Framework de Trabajo○Herramientas○ Metodología
●Escrito en PHP●Licencia MIT ●Es un Filosofía●Es una Comunidad
![Page 4: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/4.jpg)
¿Que no es symfony?
![Page 5: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/5.jpg)
¿Que no es symfony?
●No es una solución genérica○PHP funciona muy bien
●No es trivial○Es fácil de aprender y hay mucha documentación
![Page 6: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/6.jpg)
¿Que tiene de bueno?
![Page 7: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/7.jpg)
¿Que tiene de bueno?
●Popularidad y tamaño de la comunidad○# Plugins○# Libros
● Filosofía
![Page 8: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/8.jpg)
¿Que empresas lo utilizan?
![Page 9: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/9.jpg)
¿Que empresas lo utilizan?
http://symfony.com/blog/category/case-studies
Casos de Estudio : ●DailyMotion●Yahoo Bookmark●Delicious●Yahoo Answers
![Page 10: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/10.jpg)
¿Cuando utilizar symfony?
![Page 11: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/11.jpg)
¿Cuando utilizar symfony?
●Proyecto Web. ●Proyecto de largo alcance ●Equipos de trabajo●Complejidad del Proyecto Media o Grande
![Page 12: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/12.jpg)
Que contiene symfony
![Page 13: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/13.jpg)
Que contiene symfony
●Patrones de diseño●MVC●ORM●Plantillas ●Rutas ●Entornos●Plugins, muchos plugins
![Page 14: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/14.jpg)
Patrones de Diseño
![Page 15: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/15.jpg)
Patrones de Diseño
●Front Controller●Command● Intercepting Filter●Context Object●Two Step View●Helper Object or View Helper●Table Data Gateway/Row Data Gateway/Active Record●Single Table Inheritance ●Event Dispatcher ●Factory●Singleton
http://obvioushints.blogspot.com/2008/12/symfony-design-patterns.html
![Page 16: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/16.jpg)
Estructura de un proyecto● apps/
○ frontend/ ○ backend/
● cache/ ● config/ ● data/
○ sql/ ● doc/ ● lib/ ● model/ ● log/ ● plugins/ ● test/
○ bootstrap/ ○ unit/ ○ functional/
● web/ ○ css/ ○ images/ ○ js/ ○ uploads/
![Page 17: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/17.jpg)
Estructura de un proyecto● apps/
○ [application name]/ ■ config/ ■ i18n/ ■ lib/ ■ modules/ ■ templates/
■ layout.php
![Page 18: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/18.jpg)
Framework
MVC
![Page 19: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/19.jpg)
Framework
MVCModelo Vista Controlador
![Page 20: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/20.jpg)
Modelo MVC
![Page 21: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/21.jpg)
Estructura de un proyecto● apps/
○ [application name]/ ■ modules/
■ [module name]/ ■ actions/
■ actions.class.php # Controlador ■ config/■ lib/ ■ templates/
■ indexSuccess.php # Vista
![Page 22: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/22.jpg)
Modelo === ORM
Framework
MVC
![Page 23: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/23.jpg)
Los ejemplos de código son del tutorial Jobeet
http://www.symfony-project.org/jobeet/
![Page 24: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/24.jpg)
Modelo
![Page 25: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/25.jpg)
Modelo - schema.yml
![Page 26: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/26.jpg)
Modelo - schema.yml de Jobeet 1/2
![Page 27: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/27.jpg)
Modelo - schema.yml de Jobeet 2/2
![Page 28: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/28.jpg)
Modelo - Linea de comandos
php symfony propel:build-schemaphp symfony propel:build --sqlphp symfony propel:insert-sql php symfony propel:build --model
![Page 29: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/29.jpg)
Modelo - Código PHP
![Page 30: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/30.jpg)
Modelo - Código PHP
![Page 31: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/31.jpg)
Modelo - Código PHP
![Page 32: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/32.jpg)
Modelo - Código PHP
![Page 33: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/33.jpg)
Modelo - Código PHP
![Page 34: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/34.jpg)
Enrutado de Acciones
Routing
![Page 35: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/35.jpg)
Enrutado de Acciones
Queremos generar una URL como '/job/show/id/1'
![Page 36: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/36.jpg)
Enrutado de Acciones'/job/sensio-labs/paris-france/1/web-developer'
![Page 37: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/37.jpg)
Enrutado de Acciones
![Page 38: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/38.jpg)
Controlador === Acciones
Framework
MVC
![Page 39: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/39.jpg)
Acciones - Un objeto
// apps/frontend/modules/job/actions/actions.class.php class jobActions extends sfActions{ public function executeIndex(sfWebRequest $request){ $this->jobeet_jobs = Doctrine::getTable('JobeetJob') ->createQuery('a') ->execute(); } }
Se podría acceder a este módulo/acción mediante la url: '/job/Index'
![Page 40: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/40.jpg)
Acciones - Varios elementos
![Page 41: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/41.jpg)
VISTA === Plantillas
Framework
MVC
![Page 42: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/42.jpg)
Plantillas
![Page 43: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/43.jpg)
Plantillas
![Page 44: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/44.jpg)
Plantillas
![Page 45: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/45.jpg)
Plantillas
![Page 46: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/46.jpg)
Entornos y ConfiguracionesYAML
http://www.symfony-project.org/reference/1_4/en/
![Page 47: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/47.jpg)
Configuraciones
●Archivo de Configuración para los entornos. http://www.symfony-project.org/reference/1_4/en/03-Configuration-Files-Principles#chapter_03_environment_awareness
●Configuración en cascada
http://www.symfony-project.org/reference/1_4/en/03-Configuration-Files-Principles#chapter_03_configuration_cascade
![Page 48: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/48.jpg)
Entornos y Configuraciones
●settings.yml● factories.yml●generator.yml●databases.yml● security.yml ● cache.yml● routing.ym ●app.yml ● filters.yml●view.yml
![Page 49: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/49.jpg)
Plugins
![Page 50: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/50.jpg)
Plugins
●http://www.symfony-project.org/plugins/●480 Plugins para symfony 1.4●The plugin section lists 1337 symfony plugins developed by
569 contributors.
Datos al 30/07/2011
![Page 51: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/51.jpg)
sfGuardPlugin
![Page 52: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/52.jpg)
sfGuardPlugin
The sfGuardPlugin is a symfony plugin that provides authentication and authorization features above the standard
security feature of symfony.
![Page 53: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/53.jpg)
sfThumbnailPlugin
![Page 54: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/54.jpg)
sfThumbnailPlugin
The sfThumbnailPlugin creates thumbnails from images. It relies on your choice of the GD or ImageMagick libraries.
Uso:
![Page 55: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/55.jpg)
Apostrophe
http://apostrophenow.com/
![Page 56: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/56.jpg)
Apostrophe
CMS basado en:●Symfony1.4●Doctrine●MySQL●Zend Lucene ● minify (http://code.google.com/p/minify/)
![Page 57: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/57.jpg)
Apostrophe
Ejemplo:
![Page 58: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/58.jpg)
Características no nombradas
●Admin Generator● I18n y l10n●Formularios●Filtros ●Cache de contenido y caché de configuraciones● Seguridad●Tareas●Deployment●Más de doctrine●Propel●Logs y Barra de Debug ●Event Dispatcher ● Symfony 2
![Page 59: Desarrollo de Aplicaciones Web con Symfony 5/10/2011](https://reader033.vdocuments.pub/reader033/viewer/2022050815/54793434b379593a2b8b46e3/html5/thumbnails/59.jpg)
ReferenciasSymfony 2http://symfony.comSymfony 1.*http://symfony-project.org
Comunidad en español:http://symfony.es