Introducción a Symfony2Javier EguiluzJORNADAS SYMFONY 2011 1-3 JULIO, CASTELLÓN DESYMFONY.COM
Patrocinadores   Patrocinadores   PatrocinadoresColaboradores      BRONCE            PLATA        PLATINO y ORO    JORNADA...
importanteAlgunas partes de esta presentaciónno se pueden entender bien sin verel vídeo de su impartición.Puedes acceder a...
« framework PHP »
1 2 3 4 5 6 7 8 9 10     Versátil
full!stackframework
full!stack   componentsframework     framework
full!stack   components    micro                          !framework     framework   framework
full!stack   components    micro                          !framework     framework   framework
BrowserKit        EventDispatcher    Routing      Proyecto                                                  SymfonyClassLo...
BrowserKit    EventDispatcher       Routing  ClassLoader             Finder      Security    Config                Form   ...
BrowserKit    EventDispatcher       Routing  ClassLoader             Finder      Security    Config                Form   ...
BrowserKit    EventDispatcher       Routing  ClassLoader             Finder      Security    Config                Form   ...
BrowserKit    EventDispatcher       Routing  ClassLoader             Finder      Security                                 ...
BrowserKit    EventDispatcher    Routing  ClassLoader                                               Framework             ...
BrowserKit    EventDispatcher    Routing     !Framework  ClassLoader                                                 Silex...
1 2 3 4 5 6 7 8 9 10       Útil
¿ Por qué utilizar unframework bueno ?
retos de la programación web •   persistencia datos              •   rendimiento •   seguridad                       •   c...
lo que soluciona Symfony2•   persistencia datos              •   rendimiento•   seguridad                       •   cache•...
industrialización
1 2 3 4 5 6 7 8 9 10Buenas prácticas
<http>  <intercept-url pattern=/login.htm* filters=none/>  <intercept-url pattern=/** access=ROLE_USER />  <form-login log...
<http>  <intercept-url pattern=/login.htm* filters=none/>  <intercept-url pattern=/** access=ROLE_USER />  <form-login log...
EntityManagerFactory emf = Persistence.createEntityManagerFactory("manager1");EntityManager em = emf.createEntityManager()...
EntityManagerFactory emf = Persistence.createEntityManagerFactory("manager1");EntityManager em = emf.createEntityManager()...
ruby script/generate model  Articulo  titulo:string body:text
ruby script/generate model  Articulo  titulo:string body:textphp app/console doctrine:generate:entity  MiBundle:Articulo  ...
{% extends "base_generic.html" %}{% block title %} {{ seccion.titulo }} {% endblock %}{% block content %}<h1> {{ seccion.t...
{% extends "base_generic.html" %}{% block title %} {{ seccion.titulo }} {% endblock %}{% block content %}<h1> {{ seccion.t...
TwigAsseticMonolog
1 2 3 4 5 6 7 8 9 10     Flexible
novato   clásico   experto
YAMLnovato   clásico   experto
YAML   XMLnovato   clásico   experto
YAML   XML   PHPnovato   clásico   experto
archivos de configuraciónYAML XML PHP
plantillasTwig        PHP
almacenamientoSQL      NoSQL
Configuración       PHP    XML    YAMLPlantillas         PHP   TwigAlmacenamiento     SQL   NoSQLFlujo de trabajo   Anotaci...
1 2 3 4 5 6 7 8 9 10  Rendimiento
« La gran obsesión de     Symfony2 »
5.3.2
archivos de configuración PHP      YAML      XML
todo se transforma a PHPPHP              Caché   YAML XML
PHP           CachéTwig              anotaciones       YAML XML
Aplicación   BD
Aplicación   BD
Aplicación   BD
Aplicación   BD
Reverse Proxy         Aplicación                BD
Reverse Proxy         Aplicación                BD
1 2 3 4 5 6 7 8 9 10     Soporte
1.x        Feb.    Dic.     Dic.      Nov.        2007    2008     2009      2012      1.0      1.2     1.4      1.4.x2.x ...
hace 5 años no existía
1 2 3 4 5 6 7 8 9 10Documentación
10 libros 8 idiomas 15.000 págs.
The                   TheBook                  Cookook~ 200 págs.           +50 recetasReference             APIcientos de...
1 2 3 4 5 6 7 8 9 10   Comunidad
+200
+20061        43           170              32     Fuente: Github & andrewnacin.com
Doctrine      Behat  Imagine        SilexAssetic PropelSwiftMailer    Twig
Kris                   Jonathan           Sebastian        Wallsmith              H. Wage            Bergmann     Nils    ...
siwapp.org
diem-project.org   apostrophenow.org
phpbb.com
1 2 3 4 5 6 7 8 9 10   Visionario
Fabien Potencier      Fundador y  responsable delproyecto Symfony                    Foto: Guillaume Ponçon
Symfony 1 requerirá como   mínimo PHP 5.2.4            Fabien Potencier               Octubre 2005
Doctrine 2.0 es una de lasmejores cosas que le han      pasado a PHP             Fabien Potencier                Octubre 2...
Symfony2 tendrá uncontenedor de Inyecciónde Dependencias basado       en Spring           Fabien Potencier           Septi...
Twig será el formato pordefecto de las plantillas de        Symfony2              Fabien Potencier              Septiembre...
1 2 3 4 5 6 7 8 9 10     Popular
#1   para     programadores Fuente: Github
páginas vistas500000375000250000125000     0
watchers300022501500 750   0
forks700525350175  0
pull requests15001125 750 375   0
#1    para el público      en general Fuente: Google Trends
popularidad              España, 2011   0    0,25       0,5         0,75   1       Fuente: Google Trends
#1 Argentina                                #1 Colombia                                #1 Chile                           ...
#1   en ofertas de     trabajo Fuente: Infojobs
#1Fuente: deSymfony
Symfony2 es1. versátil           2. útil3. buenas prácticas   4. flexible5. rendimiento        6. soporte7. documentación ...
contactojavier.eguiluz@gmail.comtwitter.com/javiereguiluzlinkedin.com/in/javiereguiluz
Desymfony 2011 - Introducción a Symfony2
Desymfony 2011 - Introducción a Symfony2
Desymfony 2011 - Introducción a Symfony2
Desymfony 2011 - Introducción a Symfony2
Desymfony 2011 - Introducción a Symfony2
Upcoming SlideShare
Loading in...5
×

Desymfony 2011 - Introducción a Symfony2

32,883

Published on

Las Jornadas Symfony 2011 comenzaron con una breve introducción a Symfony2.

Durante la presentación se muestran algunas de las características más destacadas de Symfony2 a través de diez palabras clave.

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

No Downloads
Views
Total Views
32,883
On Slideshare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
448
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Desymfony 2011 - Introducción a Symfony2

  1. 1. Introducción a Symfony2Javier EguiluzJORNADAS SYMFONY 2011 1-3 JULIO, CASTELLÓN DESYMFONY.COM
  2. 2. Patrocinadores Patrocinadores PatrocinadoresColaboradores BRONCE PLATA PLATINO y ORO JORNADAS SYMFONY 2011 están patrocinadas por
  3. 3. importanteAlgunas partes de esta presentaciónno se pueden entender bien sin verel vídeo de su impartición.Puedes acceder al vídeo enhttp://bit.ly/sf-tutorial1
  4. 4. « framework PHP »
  5. 5. 1 2 3 4 5 6 7 8 9 10 Versátil
  6. 6. full!stackframework
  7. 7. full!stack componentsframework framework
  8. 8. full!stack components micro !framework framework framework
  9. 9. full!stack components micro !framework framework framework
  10. 10. BrowserKit EventDispatcher Routing Proyecto SymfonyClassLoader Finder Security Config Form Serializer 21 Console HttpFoundation Templating libreríasCssSelector HttpKernel TranslationDependencyInjection Locale ValidatorDomCrawler Process Yaml
  11. 11. BrowserKit EventDispatcher Routing ClassLoader Finder Security Config Form Serializer Console HttpFoundation Templating CssSelector HttpKernel Translation DependencyInjection Locale Validator DomCrawler Process Yamlcomponentes
  12. 12. BrowserKit EventDispatcher Routing ClassLoader Finder Security Config Form Serializer Console HttpFoundation Templating CssSelector HttpKernel Translation Assetic Monolog DependencyInjection Locale Validator DomCrawler Process Yaml Doctrine SwiftMailercomponentes librerías externas
  13. 13. BrowserKit EventDispatcher Routing ClassLoader Finder Security Config Form Serializer Console HttpFoundation Templating CssSelector HttpKernel Translation Assetic Monolog DependencyInjection Locale Validator DomCrawler Process Yaml Doctrine SwiftMailercomponentes librerías externas SecurityBundle DoctrineBundle FrameworkBundle +6 Bundles bundles
  14. 14. BrowserKit EventDispatcher Routing ClassLoader Finder Security Framework Config Form Serializer Symfony2 Console HttpFoundation Templating CssSelector HttpKernel Translation Assetic Monolog DependencyInjection Locale Validator DomCrawler Process Yaml Doctrine SwiftMailercomponentes librerías externas SecurityBundle DoctrineBundle FrameworkBundle +6 Bundles bundles
  15. 15. BrowserKit EventDispatcher Routing ClassLoader Framework Symfony2 HttpFoundation Templating CssSelector HttpKernel DomCrawler Yamlcomponentes
  16. 16. BrowserKit EventDispatcher Routing !Framework ClassLoader Silex HttpFoundation Templating CssSelector HttpKernel DomCrawler Yamlcomponentes 1 archivo 400 KB
  17. 17. 1 2 3 4 5 6 7 8 9 10 Útil
  18. 18. ¿ Por qué utilizar unframework bueno ?
  19. 19. retos de la programación web • persistencia datos • rendimiento • seguridad • cache • formularios • archivos web • validación • internacionalización • plantillas • tareas programadas • archivos de log • enrutamiento Fuente: Ryan Weaver, http://slidesha.re/iuptB2 (pág. 9)
  20. 20. lo que soluciona Symfony2• persistencia datos • rendimiento• seguridad • cache• formularios • archivos web• validación • internacionalización• plantillas • tareas programadas• archivos de log • enrutamiento Fuente: Ryan Weaver, http://slidesha.re/iuptB2 (pág. 9)
  21. 21. industrialización
  22. 22. 1 2 3 4 5 6 7 8 9 10Buenas prácticas
  23. 23. <http> <intercept-url pattern=/login.htm* filters=none/> <intercept-url pattern=/** access=ROLE_USER /> <form-login login-page=/login.htm default-target-url=/home.htm always-use-default-target=true /></http>
  24. 24. <http> <intercept-url pattern=/login.htm* filters=none/> <intercept-url pattern=/** access=ROLE_USER /> <form-login login-page=/login.htm default-target-url=/home.htm always-use-default-target=true /></http>firewalls: login: pattern: ^/login anonymous: ~ all: pattern: ^/ form_login: login_path: /login default_target_path: /home.htm always_use_default_target_path: true
  25. 25. EntityManagerFactory emf = Persistence.createEntityManagerFactory("manager1");EntityManager em = emf.createEntityManager();Usuario anonimo = new Usuario();anonimo.setNombre("Anónimo");anonimo.setEdad(20);em.persist(anonimo);em.flush();
  26. 26. EntityManagerFactory emf = Persistence.createEntityManagerFactory("manager1");EntityManager em = emf.createEntityManager();Usuario anonimo = new Usuario();anonimo.setNombre("Anónimo");anonimo.setEdad(20);em.persist(anonimo);em.flush();$em = $this->get(doctrine)->getEntityManager();$anonimo = new Usuario();$anonimo->setNombre("Anónimo");$anonimo->setEdad(20);$em->persist($anonimo);$em->flush();
  27. 27. ruby script/generate model Articulo titulo:string body:text
  28. 28. ruby script/generate model Articulo titulo:string body:textphp app/console doctrine:generate:entity MiBundle:Articulo "titulo:string(255) body:text"
  29. 29. {% extends "base_generic.html" %}{% block title %} {{ seccion.titulo }} {% endblock %}{% block content %}<h1> {{ seccion.titulo }} </h1>{% for articulo in articulos %} <h2> {{ articulo.titulo|upper }} </h2>{% endfor %}{% endblock %}
  30. 30. {% extends "base_generic.html" %}{% block title %} {{ seccion.titulo }} {% endblock %}{% block content %}<h1> {{ seccion.titulo }} </h1>{% for articulo in articulos %} <h2> {{ articulo.titulo|upper }} </h2>{% endfor %}{% endblock %}{% extends "::base_generic.html" %}{% block title %} {{ seccion.titulo }} {% endblock %}{% block content %}<h1> {{ seccion.titulo }} </h1>{% for articulo in articulos %} <h2> {{ articulo.titulo|upper }} </h2>{% endfor %}{% endblock %}
  31. 31. TwigAsseticMonolog
  32. 32. 1 2 3 4 5 6 7 8 9 10 Flexible
  33. 33. novato clásico experto
  34. 34. YAMLnovato clásico experto
  35. 35. YAML XMLnovato clásico experto
  36. 36. YAML XML PHPnovato clásico experto
  37. 37. archivos de configuraciónYAML XML PHP
  38. 38. plantillasTwig PHP
  39. 39. almacenamientoSQL NoSQL
  40. 40. Configuración PHP XML YAMLPlantillas PHP TwigAlmacenamiento SQL NoSQLFlujo de trabajo Anotaciones Archivos
  41. 41. 1 2 3 4 5 6 7 8 9 10 Rendimiento
  42. 42. « La gran obsesión de Symfony2 »
  43. 43. 5.3.2
  44. 44. archivos de configuración PHP YAML XML
  45. 45. todo se transforma a PHPPHP Caché YAML XML
  46. 46. PHP CachéTwig anotaciones YAML XML
  47. 47. Aplicación BD
  48. 48. Aplicación BD
  49. 49. Aplicación BD
  50. 50. Aplicación BD
  51. 51. Reverse Proxy Aplicación BD
  52. 52. Reverse Proxy Aplicación BD
  53. 53. 1 2 3 4 5 6 7 8 9 10 Soporte
  54. 54. 1.x Feb. Dic. Dic. Nov. 2007 2008 2009 2012 1.0 1.2 1.4 1.4.x2.x Jul. 2011 Jun. 2016 2.0 2.x
  55. 55. hace 5 años no existía
  56. 56. 1 2 3 4 5 6 7 8 9 10Documentación
  57. 57. 10 libros 8 idiomas 15.000 págs.
  58. 58. The TheBook Cookook~ 200 págs. +50 recetasReference APIcientos de opciones cientos dede configuración métodos
  59. 59. 1 2 3 4 5 6 7 8 9 10 Comunidad
  60. 60. +200
  61. 61. +20061 43 170 32 Fuente: Github & andrewnacin.com
  62. 62. Doctrine Behat Imagine SilexAssetic PropelSwiftMailer Twig
  63. 63. Kris Jonathan Sebastian Wallsmith H. Wage Bergmann Nils François ThibaultAdermann Zaninotto Duplessis Bulat Benjamin Konstantin Shakirzyanov Eberlei Kudryashov Lukas Ryan Bernhard K. Smith Weaver Schussek
  64. 64. siwapp.org
  65. 65. diem-project.org apostrophenow.org
  66. 66. phpbb.com
  67. 67. 1 2 3 4 5 6 7 8 9 10 Visionario
  68. 68. Fabien Potencier Fundador y responsable delproyecto Symfony Foto: Guillaume Ponçon
  69. 69. Symfony 1 requerirá como mínimo PHP 5.2.4 Fabien Potencier Octubre 2005
  70. 70. Doctrine 2.0 es una de lasmejores cosas que le han pasado a PHP Fabien Potencier Octubre 2009
  71. 71. Symfony2 tendrá uncontenedor de Inyecciónde Dependencias basado en Spring Fabien Potencier Septiembre 2008
  72. 72. Twig será el formato pordefecto de las plantillas de Symfony2 Fabien Potencier Septiembre 2010
  73. 73. 1 2 3 4 5 6 7 8 9 10 Popular
  74. 74. #1 para programadores Fuente: Github
  75. 75. páginas vistas500000375000250000125000 0
  76. 76. watchers300022501500 750 0
  77. 77. forks700525350175 0
  78. 78. pull requests15001125 750 375 0
  79. 79. #1 para el público en general Fuente: Google Trends
  80. 80. popularidad España, 2011 0 0,25 0,5 0,75 1 Fuente: Google Trends
  81. 81. #1 Argentina #1 Colombia #1 Chile #1 Cuba #1 Mexico #1 Perú #1 UruguayFuente: Google Trends & Alexa #1 Venezuela
  82. 82. #1 en ofertas de trabajo Fuente: Infojobs
  83. 83. #1Fuente: deSymfony
  84. 84. Symfony2 es1. versátil 2. útil3. buenas prácticas 4. flexible5. rendimiento 6. soporte7. documentación 8. comunidad9. visionario 10. popular
  85. 85. contactojavier.eguiluz@gmail.comtwitter.com/javiereguiluzlinkedin.com/in/javiereguiluz
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×