Motivación y causas del cambio de arquitectura en Drupal versión 8 y por que se ha escogido a Symfony 2 como principal socio tecnológico en el proyecto. Sustitución de partes de Drupal 8 por componentes de Symfony 2.
2. #Drupal8 & #Symfony2 #DrupalCS, 03May2012
Personal
● Desarrollador web freelance.
● Administrador del grupo de usuarios de Drupal
de Castellón, @DrupalCS:
http://groups.drupal.org/castellon
@ALMADEWEB 2 / 20
3. #Drupal8 & #Symfony2 #DrupalCS, 03May2012
● Motivación: ¿Porque Symfony2 en un
grupo de usuarios de Drupal?
● Symfony2 framework de desarrollo de
aplicaciones web y conjunto de
componentes desacoplados by
@MagdKudama
● Componentes de Symfony2 en Drupal8
● Grupo de estudio Drupal8 en DrupalCS
@ALMADEWEB 3 / 20
4. #Drupal8 & #Symfony2 #DrupalCS, 03May2012
Una muy sintética historia de Drupal
@ALMADEWEB 4 / 20
5. #Drupal8 & #Symfony2 #DrupalCS, 03May2012
● 2001: Dries libera el código de Drupal y el
programa se gana el interés de una activa
comunidad
● 2005: Primera Drupalcon y comienzos de lo que
sería CCK y Views (factor diferenciador de
Drupal)
● 2007: EL Boom de Drupal. Fundación de
Acquia, Lullabot... y otras grandes empresas
Drupal
● 2009: Grandes sitios (whitehouse) y SmallCore
● 2011: Release de Drupal7 y “Drupal Crisis”
@ALMADEWEB 5 / 20
7. #Drupal8 & #Symfony2 #DrupalCS, 03May2012
En definitiva: Muchos usuarios, un gran
volumen de negocio, pero pocos
desarrolladores...
Y aquí es donde entra Symfony2
@ALMADEWEB 7 / 20
8. #Drupal8 & #Symfony2 #DrupalCS, 03May2012
… pero antes. ¿Cual es la causa?
● Core muy complejo
● Core altamente acoplado con dependencias
cíclicas
● Muy difícil hacer testing decente. Imposible usar
metodologías de desarrollo modernas como
TDD
● Sindrome Not Invented Here
● Iniciativa core WSSCI se ocupa de carga parcial
en Boostrap con objeto context y respuesta no
página en core
@ALMADEWEB 8 / 20
9. #Drupal8 & #Symfony2 #DrupalCS, 03May2012
Ahora si.
Symfony 2 framework de desarrollo de
aplicaciones web y conjunto de
componentes altamente desacoplados,
by @MagdKudama
@ALMADEWEB 9 / 20
10. #Drupal8 & #Symfony2 #DrupalCS, 03May2012
¿Porque componentes Symfony2 en
Drupal8?
● Para escapar del síndrome “Not Invented Here”
● Porque la comunidad Symfony está creciendo
mucho y sus lideres están dando un gran apoyo
a la comunidad Drupal
● Porque los componentes de Symfony2 son de
muy alta calidad técnica y están especialmente
desacoplados y pensados para construir
frameworks web basados en HTTP
● Por que el futuro es móvil y RESTful
@ALMADEWEB 10 / 20
11. #Drupal8 & #Symfony2 #DrupalCS, 03May2012
Cambio de arquitectura en
Drupal 8
@ALMADEWEB 11 / 20
12. #Drupal8 & #Symfony2 #DrupalCS, 03May2012
Para conseguir todo esto hay que...
● Abstraer los controladores de manera que se
puedan simular y ejecutar de manera aislada
● Pasar de usar variables globales a usar
inyección de dependencias (DI)
● Todo lo anterior es imposible sin usar OOP. Por
lo tanto hay que dejar de usar código
procedural puro
● Trabajar más de cerca con los proyectos
Symfony 2 y Symfony CMF
@ALMADEWEB 12 / 20
13. #Drupal8 & #Symfony2 #DrupalCS, 03May2012
… y pasar de servir una página ...
@ALMADEWEB 13 / 20
14. #Drupal8 & #Symfony2 #DrupalCS, 03May2012
… a servir
una petición.
@ALMADEWEB 14 / 20
15. #Drupal8 & #Symfony2 #DrupalCS, 03May2012
Beneficios inmediatos
● Mejorar el rendimiento al no tener que hacer un
Bootstrap completo y que dependa del contexto
de la aplicación
● Testing más eficiente.
● Mejorar los sistemas de caching, Edge Side
Includes (ESI), CDNs... bloques con URI propia
@ALMADEWEB 15 / 20
16. #Drupal8 & #Symfony2 #DrupalCS, 03May2012
A partir de aquí...
● Hacking Drupal 8
● El objetivo principal es aprender
● También estaría bien contribuir código a las
iniciativas del core que hagan uso de
componentes Symfony2 (o no).
@ALMADEWEB 16 / 20
17. #Drupal8 & #Symfony2 #DrupalCS, 03May2012
Como conseguirlo
● Estudiar Drupal 8
● Estudiar Symfony 2 y Componentes
● Profiling y tracing de peticiones a Drupal 8
kernel
● Issue queues relacionadas con Drupal 8 kernel
y Symfony 2
@ALMADEWEB 17 / 20
19. #Drupal8 & #Symfony2 #DrupalCS, 03May2012
Próximos eventos
15, 16 y 17 de Junio 15 y 16 de Junio
http://barcelona2012.drupaldays.org/ desymfony.com
20 y 21 de Octubre 20 a 24 de Agosto
http://2012.drupalcamp.es/es http://munich2012.drupal.org/
@ALMADEWEB 19 / 20