desarrollo de aplicaciones web con symfony 5/10/2011

59
Desarrollo de aplicaciones web con symfony Matias Montenegro Luciano Andrade

Upload: gorolabs

Post on 29-Nov-2014

515 views

Category:

Technology


0 download

DESCRIPTION

Presentacion en el LUGRo (Grupo de usuarios de Software Libre Rosario) sobre symfony 1.4: http://www.lugro.org.ar/CCTP_Desarrollo_de_Aplicaciones_Web_con_Symfony

TRANSCRIPT

Page 1: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Desarrollo de aplicaciones web con symfony

Matias MontenegroLuciano Andrade

Page 2: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

¿Que es symfony?

 

Page 3: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

¿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

¿Que no es symfony?

 

Page 5: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

¿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

¿Que tiene de bueno?

 

Page 7: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

¿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

¿Que empresas lo utilizan?

 

Page 9: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

¿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

¿Cuando utilizar symfony?

 

Page 11: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

¿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

Que contiene symfony

 

Page 13: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

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

Patrones de Diseño

 

Page 15: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

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

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

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

Framework

MVC

Page 19: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Framework

MVCModelo  Vista  Controlador

Page 20: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Modelo MVC

Page 21: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

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

Modelo === ORM

Framework

MVC

Page 23: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

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

Modelo

 

Page 25: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Modelo - schema.yml

Page 26: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Modelo - schema.yml de Jobeet 1/2 

Page 27: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Modelo - schema.yml de Jobeet 2/2 

Page 28: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

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

Modelo - Código PHP

Page 30: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Modelo - Código PHP

Page 31: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Modelo - Código PHP

Page 32: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Modelo - Código PHP

Page 33: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Modelo - Código PHP

Page 34: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Enrutado de Acciones

Routing

Page 35: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Enrutado de Acciones

Queremos generar una URL como '/job/show/id/1'

Page 36: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Enrutado de Acciones'/job/sensio-labs/paris-france/1/web-developer'

Page 37: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Enrutado de Acciones

Page 38: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Controlador === Acciones

Framework

MVC

Page 39: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

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

Acciones - Varios elementos

Page 41: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

VISTA === Plantillas

Framework

MVC

Page 42: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Plantillas

Page 43: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Plantillas

Page 44: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Plantillas

Page 45: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Plantillas

Page 46: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

Entornos y ConfiguracionesYAML

http://www.symfony-project.org/reference/1_4/en/

Page 47: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

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

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

Plugins

 

Page 50: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

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

sfGuardPlugin

 

Page 52: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

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

sfThumbnailPlugin

 

Page 54: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

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

Apostrophe

http://apostrophenow.com/

Page 56: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

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

Apostrophe

   

Ejemplo:

Page 58: Desarrollo de Aplicaciones Web con Symfony 5/10/2011

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

ReferenciasSymfony 2http://symfony.comSymfony 1.*http://symfony-project.org

Comunidad en español:http://symfony.es