Publicado el 14 de Enero del 2017
746 visualizaciones desde el 14 de Enero del 2017
937,3 KB
23 paginas
Creado hace 12a (01/10/2012)
Symfony en Drupal 8
Pedro Lozano
Octubre 2012
Sobre Mi
• @peterlozano
• Bluespark Labs http://bluespark.com
• http://drupal.org/user/123766
• http://peterlozano.com
Estructura de la sesión
• Un poco de historia (WSCCI)
• Timeline: http://bit.ly/symd8tl
• Estado actual
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
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..."
REST Server
REST Server
• Respuestas no-html
• json, xml, etc...
• Sin usar módulos contribuidos como
• ... html es solo un caso concreto
• Aplicaciones móviles
“Services”
REST Server
una pieza de contenido
• Respuestas no-página
• Todo es un bloque que representa
• Todos los bloques tienen una URL
• Útil para renderización asíncrona
• Bloques via ajax
• ESI
D7 vs D8
Content AreaBlock regionBlock regionBlock regionBlockBlockBlockBlockBlockSite TitlePrimary LinksSecondary LinksLogoBlock regionPageTitleWho's online blockCustom blockAdvert blockMenu blockView blockContent blockCustom blockCustom text blockView blockField blockCustom blockField blockField blockAdvert blockArgumentsHTTP Req.RequestSelectPass toKernelDisplay controllerContexto
• 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
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)
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
HttpFoundation
• Requests, Responses, Files, Cookies, Sessions, ..
• Request
• Response
¿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
Componentes Usados
• HttpFoundation
• ClassLoader
• EventDispatcher
• DependencyInyection
• HttpKernel
• Routing
ClassLoader
• Carga on-demand de los ficheros de clases
• Implementa PSR-0
• Reemplaza al Registro de clases de Drupal 7
EventDispatcher
de hooks
• En un futuro podría reemplazar al sistema
• Pero no en Drupal 8
• Ya reemplaza a algunos hooks de bajo nivel
• Sistema híbrido
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()
HttpKernel
• Request => Response
• Reestructura toda la lógica
• Compatibilidad con otros frameworks
• Facilidades para caché
Routing
• Reemplaza al sistema de ruteo
• URL => Callback
• Muerte a hook_menu().
• Posibilidad de que se encuentre en CMI
Colaboración
• Symfony LTS Releases
¿Preguntas?
Gracias / Créditos
• Larry Garfield (@crell)
• https://github.com/Crell/slides-wscci
• Javier Carranza y Cayetano Soriano
(Crononauta)
Comentarios de: symfony en drupal 8 (0)
No hay comentarios