Drupal8 Symfony2 en DrupalCS

20
@ALMADEWEB Drupal8 & Symfony2 @DrupalCS 03 mayo 2012 Alessandro Mascherpa

description

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.

Transcript of Drupal8 Symfony2 en DrupalCS

Page 1: Drupal8 Symfony2 en DrupalCS

@ALMADEWEB

Drupal8 & Symfony2

@DrupalCS03 mayo 2012

Alessandro Mascherpa

Page 2: Drupal8 Symfony2 en DrupalCS

#Drupal8 & #Symfony2 #DrupalCS, 03May2012

2 / 20@ALMADEWEB

Personal

● Desarrollador web freelance.● Administrador del grupo de usuarios de Drupal

de Castellón, @DrupalCS: http://groups.drupal.org/castellon

Page 3: Drupal8 Symfony2 en DrupalCS

#Drupal8 & #Symfony2 #DrupalCS, 03May2012

3 / 20@ALMADEWEB

● 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

Page 4: Drupal8 Symfony2 en DrupalCS

#Drupal8 & #Symfony2 #DrupalCS, 03May2012

4 / 20@ALMADEWEB

Una muy sintética historia de Drupal

Page 5: Drupal8 Symfony2 en DrupalCS

#Drupal8 & #Symfony2 #DrupalCS, 03May2012

5 / 20@ALMADEWEB

● 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”

Page 6: Drupal8 Symfony2 en DrupalCS

#Drupal8 & #Symfony2 #DrupalCS, 03May2012

6 / 20@ALMADEWEB

¿Algún problema Drupal?

http://chrisadas.com/2012/01/03/drupal-cores-development-timeline-46-7

Page 7: Drupal8 Symfony2 en DrupalCS

#Drupal8 & #Symfony2 #DrupalCS, 03May2012

7 / 20@ALMADEWEB

En definitiva: Muchos usuarios, un gran volumen de negocio, pero pocos

desarrolladores...

Y aquí es donde entra Symfony2

Page 8: Drupal8 Symfony2 en DrupalCS

#Drupal8 & #Symfony2 #DrupalCS, 03May2012

8 / 20@ALMADEWEB

… 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

Page 9: Drupal8 Symfony2 en DrupalCS

#Drupal8 & #Symfony2 #DrupalCS, 03May2012

9 / 20@ALMADEWEB

Ahora si.

Symfony 2 framework de desarrollo de aplicaciones web y conjunto de

componentes altamente desacoplados,

by @MagdKudama

Page 10: Drupal8 Symfony2 en DrupalCS

#Drupal8 & #Symfony2 #DrupalCS, 03May2012

10 / 20@ALMADEWEB

¿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

Page 11: Drupal8 Symfony2 en DrupalCS

#Drupal8 & #Symfony2 #DrupalCS, 03May2012

11 / 20@ALMADEWEB

Cambio de arquitectura en Drupal 8

Page 12: Drupal8 Symfony2 en DrupalCS

#Drupal8 & #Symfony2 #DrupalCS, 03May2012

12 / 20@ALMADEWEB

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

Page 13: Drupal8 Symfony2 en DrupalCS

#Drupal8 & #Symfony2 #DrupalCS, 03May2012

13 / 20@ALMADEWEB

… y pasar de servir una página ...

Page 14: Drupal8 Symfony2 en DrupalCS

#Drupal8 & #Symfony2 #DrupalCS, 03May2012

14 / 20@ALMADEWEB

… a servir una petición.

Page 15: Drupal8 Symfony2 en DrupalCS

#Drupal8 & #Symfony2 #DrupalCS, 03May2012

15 / 20@ALMADEWEB

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

Page 16: Drupal8 Symfony2 en DrupalCS

#Drupal8 & #Symfony2 #DrupalCS, 03May2012

16 / 20@ALMADEWEB

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).

Page 17: Drupal8 Symfony2 en DrupalCS

#Drupal8 & #Symfony2 #DrupalCS, 03May2012

17 / 20@ALMADEWEB

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

Page 18: Drupal8 Symfony2 en DrupalCS

#Drupal8 & #Symfony2 #DrupalCS, 03May2012

18 / 20@ALMADEWEB

Referencias

● http://developmentseed.org/blog/2009/oct/28/smallcore-manifesto-help-us-build-better-teddy-bear/● http://www.slideshare.net/eaton/drupal-product-framework-or-platform● http://blip.tv/drupalcon/product_platform-5491404● http://www.unleashedmind.com/en/blog/sun/the-drupal-crisis● http://www.garfieldtech.com/blog/drupal-post-page-era● http://drupal.org/node/1224666● http://groups.drupal.org/node/226479

Page 19: Drupal8 Symfony2 en DrupalCS

#Drupal8 & #Symfony2 #DrupalCS, 03May2012

19 / 20@ALMADEWEB

Próximos eventos

http://2012.drupalcamp.es/es

http://barcelona2012.drupaldays.org/ desymfony.com15, 16 y 17 de Junio 15 y 16 de Junio

20 y 21 de Octubrehttp://munich2012.drupal.org/

20 a 24 de Agosto

Page 20: Drupal8 Symfony2 en DrupalCS

#Drupal8 & #Symfony2 #DrupalCS, 03May2012

20 / 20 @ALMADEWEB

¿Preguntas? ...… comentarios ...… críticas ...

Gracias :)

Alessandro Mascherpa

@ALMADEWEB

Magd Kudama

@magdkudama