Symfony en Drupal 8. Los Detalles. (Spanish)

554 visualizaciones

Publicado el

Diapositivas de la charla http://2012.drupalcamp.es/es/sesiones/symfony-en-drupal-8-los-detalles-101

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
554
En SlideShare
0
De insertados
0
Número de insertados
5
Acciones
Compartido
0
Descargas
7
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Symfony en Drupal 8. Los Detalles. (Spanish)

  1. 1. Symfony en Drupal 8Pedro LozanoOctubre 2012
  2. 2. Sobre Mi• @peterlozano• Bluespark Labs http://bluespark.com• http://drupal.org/user/123766• http://peterlozano.com
  3. 3. Estructura de la sesión• Un poco de historia (WSCCI) • Timeline: http://bit.ly/symd8tl• Estado actual
  4. 4. WSCCI• Web Services and Context Core Initiative• http://groups.drupal.org/wscci• Larry Garfield (aka: @crell)• Una de las iniciativas para Drupal 8• Inicialmente no relacionado con Symfony
  5. 5. WSCCI• "...transformar Drupal de un CMS de primera-clase en un servidor REST de primera-clase con un CMS de primera-clase encima..."• "...Para ello, debemos dar a Drupal un sistema de contexto, potente y unificado..."
  6. 6. REST Server
  7. 7. REST Server• Respuestas no-html • json, xml, etc... • Sin usar módulos contribuidos como “Services” • ... html es solo un caso concreto • Aplicaciones móviles
  8. 8. REST Server• Respuestas no-página • Todo es un bloque que representa una pieza de contenido • Todos los bloques tienen una URL • Útil para renderización asíncrona • Bloques via ajax • ESI
  9. 9. D7 vs D8 HTTP Display Request Pass to Kernel Select Req. controller Site Title Primary LinksLogo s ment PageTitle Secondary Links Argu Block Block Menu block Block Block Content block Advert Block Field block Content Area block Block Blockregion region Field block View Field block block Whos online block View block Custom Custom block block Advert Block region block Custom Custom text block block Block region
  10. 10. Contexto• No existe un sistema de contexto• Información repartida por globales • $_GET, $_POST, $user, arg(), $language,...• Unificar información global/contextual• Se investigan librerías que ya hagan esto • Zend / Symfony • http://groups.drupal.org/node/167299
  11. 11. Mundo PHP• PSR-0: Estandariza el autoload de clases• Composer: facilita compartir código• Symfony Components• Creación de Frameworks basados en Symfony (http://bit.ly/T35TK2)
  12. 12. Symfony 2• Componentes • Funcionalidades comunes en web apps • Pueden ser utilizados independientemente • En Drupal 8 sólo se va a usar esto• Framework • Basado en los componentes http://fabien.potencier.org/article/49/what-is-symfony2
  13. 13. HttpFoundation• Requests, Responses, Files, Cookies, Sessions, ..• Request• Response
  14. 14. ¿Otros componentes?• ¿Habrá otros componentes que podamos usar? http://drupal.org/node/1263478• Symfony ya permite implementar gran parte de lo que WSCCI se planteaba
  15. 15. Componentes Usados• HttpFoundation• ClassLoader• EventDispatcher• DependencyInyection• HttpKernel• Routing
  16. 16. ClassLoader• Carga on-demand de los ficheros de clases• Implementa PSR-0• Reemplaza al Registro de clases de Drupal 7
  17. 17. EventDispatcher• En un futuro podría reemplazar al sistema de hooks• Pero no en Drupal 8• Ya reemplaza a algunos hooks de bajo nivel• Sistema híbrido
  18. 18. DependencyInyection• Patrón de diseño “Inyección de dependencias”• Básicamente, un array de objectos• Centraliza la creación de objetos/servicios• Facilita la testabilidad• drupal_container()->get()
  19. 19. HttpKernel• Request => Response• Reestructura toda la lógica• Compatibilidad con otros frameworks• Facilidades para caché
  20. 20. Routing• Reemplaza al sistema de ruteo • URL => Callback• Muerte a hook_menu().• Posibilidad de que se encuentre en CMI
  21. 21. Colaboración• Symfony LTS Releases
  22. 22. ¿Preguntas?
  23. 23. Gracias / Créditos• Larry Garfield (@crell) • https://github.com/Crell/slides-wscci• Javier Carranza y Cayetano Soriano (Crononauta)

×