Symfony en Drupal 8. Los Detalles. (Spanish)
-
Upload
pedro-lozano -
Category
Documents
-
view
348 -
download
1
description
Transcript of Symfony en Drupal 8. Los Detalles. (Spanish)
![Page 1: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/1.jpg)
Symfony en Drupal 8Pedro Lozano
Octubre 2012
![Page 2: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/2.jpg)
Sobre Mi
• @peterlozano
• Bluespark Labs http://bluespark.com
• http://drupal.org/user/123766
• http://peterlozano.com
![Page 3: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/3.jpg)
Estructura de la sesión
• Un poco de historia (WSCCI)
• Timeline: http://bit.ly/symd8tl
• Estado actual
![Page 4: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/4.jpg)
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
![Page 5: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/5.jpg)
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..."
![Page 6: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/6.jpg)
REST Server
![Page 7: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/7.jpg)
REST Server
• Respuestas no-html
• json, xml, etc...
• Sin usar módulos contribuidos como “Services”
• ... html es solo un caso concreto
• Aplicaciones móviles
![Page 8: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/8.jpg)
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
![Page 9: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/9.jpg)
D7 vs D8
Content Area
Block region
Block region
Block region
Block
Block
Block
Block
Block
Site Title Primary Links
Secondary LinksLogo
Block region
PageTitle
Who's
online
block
Custom
block
Advert
block
Menu
block
View
block
Content block
Custom
block
Custom text block
View
block
Field block
Custom block
Field
block
Field
block
Advert
block
Arguments
HTTP
Req.Request SelectPass to Kernel
Display
controller
![Page 10: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/10.jpg)
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
![Page 11: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/11.jpg)
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)
![Page 12: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/12.jpg)
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
![Page 13: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/13.jpg)
HttpFoundation• Requests, Responses, Files, Cookies, Sessions, ..
• Request
• Response
![Page 14: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/14.jpg)
¿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
![Page 15: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/15.jpg)
Componentes Usados
• HttpFoundation
• ClassLoader
• EventDispatcher
• DependencyInyection
• HttpKernel
• Routing
![Page 16: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/16.jpg)
ClassLoader
• Carga on-demand de los ficheros de clases
• Implementa PSR-0
• Reemplaza al Registro de clases de Drupal 7
![Page 17: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/17.jpg)
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
![Page 18: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/18.jpg)
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()
![Page 19: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/19.jpg)
HttpKernel
• Request => Response
• Reestructura toda la lógica
• Compatibilidad con otros frameworks
• Facilidades para caché
![Page 20: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/20.jpg)
Routing
• Reemplaza al sistema de ruteo
• URL => Callback
• Muerte a hook_menu().
• Posibilidad de que se encuentre en CMI
![Page 21: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/21.jpg)
Colaboración
• Symfony LTS Releases
![Page 22: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/22.jpg)
¿Preguntas?
![Page 23: Symfony en Drupal 8. Los Detalles. (Spanish)](https://reader034.fdocuments.us/reader034/viewer/2022052623/55988cf61a28aba8128b4673/html5/thumbnails/23.jpg)
Gracias / Créditos
• Larry Garfield (@crell)
• https://github.com/Crell/slides-wscci
• Javier Carranza y Cayetano Soriano (Crononauta)