Desarrollo de Aplicaciones Web con Symfony 5/10/2011

487 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
487
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Desarrollo de Aplicaciones Web con Symfony 5/10/2011

  1. 1. Desarrollo de aplicacionesweb con symfonyMatias MontenegroLuciano Andrade
  2. 2. ¿Que es symfony? 
  3. 3. ¿Que es symfony?●Un Framework de Trabajo○Herramientas○ Metodología●Escrito en PHP●Licencia MIT  ●Es un Filosofía●Es una Comunidad 
  4. 4. ¿Que no es symfony? 
  5. 5. ¿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
  6. 6. ¿Que tiene de bueno? 
  7. 7. ¿Que tiene de bueno?●Popularidad y tamaño de la comunidad○# Plugins○# Libros● Filosofía
  8. 8. ¿Que empresas lo utilizan? 
  9. 9. ¿Que empresas lo utilizan?http://symfony.com/blog/category/case-studiesCasos de Estudio :●DailyMotion●Yahoo Bookmark●Delicious●Yahoo Answers
  10. 10. ¿Cuando utilizar symfony? 
  11. 11. ¿Cuando utilizar symfony?●Proyecto Web.●Proyecto de largo alcance ●Equipos de trabajo●Complejidad del Proyecto Media o Grande
  12. 12. Que contiene symfony 
  13. 13. Que contiene symfony●Patrones de diseño●MVC●ORM●Plantillas ●Rutas ●Entornos●Plugins, muchos plugins
  14. 14. Patrones de Diseño 
  15. 15. 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●Singletonhttp://obvioushints.blogspot.com/2008/12/symfony-design-patterns.html
  16. 16. 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/
  17. 17. Estructura de un proyecto● apps/ ○ [application name]/ ■ config/ ■ i18n/ ■ lib/ ■ modules/ ■ templates/ ■ layout.php
  18. 18. FrameworkMVC
  19. 19. FrameworkMVCModelo  Vista  Controlador
  20. 20. Modelo MVC
  21. 21. Estructura de un proyecto● apps/ ○ [application name]/ ■ modules/ ■ [module name]/ ■ actions/ ■ actions.class.php # Controlador ■ config/■ lib/ ■ templates/ ■ indexSuccess.php # Vista
  22. 22. Modelo === ORMFrameworkMVC
  23. 23. Los ejemplos de código sondel tutorial  Jobeethttp://www.symfony-project.org/jobeet/
  24. 24. Modelo 
  25. 25. Modelo - schema.yml
  26. 26. Modelo - schema.yml de Jobeet 1/2 
  27. 27. Modelo - schema.yml de Jobeet 2/2 
  28. 28. Modelo - Linea de comandosphp symfony propel:build-schemaphp symfony propel:build --sqlphp symfony propel:insert-sql php symfony propel:build --model    
  29. 29. Modelo - Código PHP
  30. 30. Modelo - Código PHP
  31. 31. Modelo - Código PHP
  32. 32. Modelo - Código PHP
  33. 33. Modelo - Código PHP
  34. 34. Enrutado de AccionesRouting
  35. 35. Enrutado de AccionesQueremos generar una URL como /job/show/id/1
  36. 36. Enrutado de Acciones/job/sensio-labs/paris-france/1/web-developer
  37. 37. Enrutado de Acciones
  38. 38. Controlador === AccionesFrameworkMVC
  39. 39. Acciones - Un objeto// apps/frontend/modules/job/actions/actions.class.phpclass 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
  40. 40. Acciones - Varios elementos
  41. 41. VISTA === PlantillasFrameworkMVC
  42. 42. Plantillas
  43. 43. Plantillas
  44. 44. Plantillas
  45. 45. Plantillas
  46. 46. Entornos y ConfiguracionesYAMLhttp://www.symfony-project.org/reference/1_4/en/
  47. 47. 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
  48. 48. Entornos y Configuraciones●settings.yml●factories.yml●generator.yml●databases.yml●security.yml●cache.yml●routing.ym●app.yml●filters.yml●view.yml
  49. 49. Plugins 
  50. 50. Plugins●http://www.symfony-project.org/plugins/●480 Plugins para symfony 1.4●The plugin section lists 1337 symfony plugins developed by569 contributors.   Datos al 30/07/2011
  51. 51. sfGuardPlugin 
  52. 52. sfGuardPluginThe sfGuardPlugin is a symfony plugin that providesauthentication and authorization features above the standardsecurity feature of symfony.  
  53. 53. sfThumbnailPlugin 
  54. 54. sfThumbnailPluginThe sfThumbnailPlugin creates thumbnails from images. Itrelies on your choice of the GD or ImageMagick libraries.Uso:
  55. 55. Apostrophehttp://apostrophenow.com/
  56. 56. ApostropheCMS basado en:●Symfony1.4●Doctrine●MySQL●Zend Lucene● minify (http://code.google.com/p/minify/)
  57. 57. Apostrophe   Ejemplo:
  58. 58. 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 
  59. 59. ReferenciasSymfony 2http://symfony.comSymfony 1.*http://symfony-project.orgComunidad en español:http://symfony.es

×