Este documento presenta una introducción a Drupal 8, incluyendo sus nuevas funcionalidades como campos mejorados, configuración almacenada en la base de datos, motor de plantillas Twig, y soporte para desarrollo basado en objetos. También discute mejoras para desarrolladores como el uso de componentes Symfony y PHPUnit, así como errores comunes al migrar desde Drupal 7.
20. Tecnologías de vanguardia Symfony 2
Conjunto de componentes PHP desacoplados y reutilizables.
Drupal 8 incluye:
HttpFoundation
HttpKernel
Routing
EventDispatcher
DependencyInjection
ClassLoader
Serializer
Yaml
Validator
21. Tecnologías de vanguardia Composer
Herramienta gestión de dependencias en PHP
Permite declarar librerías de forma
dependiente en un proyecto.
Drupal 8 se puede instalar con todas sus
dependencias con Composer
drupal-composer.org
22. Guzzle
Cliente PHP para HTTP que abstrae capa
de transporte HTTP.
Permite gestionar peticiones síncronas y
asíncronas utilizando la misma interfaz.
Útil para la integración de API RESTful
Tecnologías de vanguardia
23. Twig
Motor de plantillas Symfony
Compilador de plantillas en texto plano:
código optimizado => rápido y seguro
Sintaxis simple para facilitar trabajo a
frontend developers
Tecnologías de vanguardia
27. - -
Traducción con módulos
Responsive con temas
Nodos
REST con módulos
Configuración en BBDD
JS con módulos
OOP
Translate everything!
100% responsive
Entidades
REST in core
Conf. Management
JS en core
Drupal 7 Drupal 8
39. NOVEDADES - LO QUE VEMOS
Instalador
Estructura de directorios
Entorno de administración
Gestión de contenido
Gestión de usuarios
Gestión de módulos
43. configuration management 8
Drupal maneja dos tipo de datos:
Contenido: entidades, nodos, taxonomía…
Configuración: Tipos de entidades, tipos de
contenido…
En Drupal 7 la configuración se almacena en BD
Drupal 7, deploy de código sencillo.
Drupal 7, deploy de configuración no es tan sencillo.
45. configuration management 8 - ii
hook_update_N()
Se ejecuta una vez y se actualiza la versión del
esquema de base de datos para un módulo especifico.
Se requiere experiencia
Features
Crea configuraciones de base de datos para exportar a
otros sitios/instalaciones/entornos
Permite p.e exportar configuración de “vistas” a código.
46. configuration management 8 - iii
Problema de Features
No ha sido diseñado para “pasar”
configuración a código.
Si un módulo se actualiza, necesitamos
regenerar la “feature”.
El código generado es PHP. Si encontramos
un conflicto….desastre a la vista!!!
47. configuration management 8 - IV
Drupal 8
Se considera necesario una solución
para “pasar” configuración a código.
CMI Drupal 8
48. configuration management 8 - IV
YAML
Uso YAML como formato estándar
para archivos de configuración.
Código limpio y sencillo.
Fácil mantenimiento en CVS
49. configuration management 8 - IV
…seguimos usando configuración en BBDDD
Motivo: caché!!!
D7: config en BD y exporta a código.
D8: config en código y se cachea en BD.
53. entidades en core : Drupal 8 - iI
“Entities, in Drupal, are objects that are used for
persistent storage of content and configuration information”
- Entity API
54. evolución entidades versiones drupal
Drupal 3 y versiones anteriores: solo nodos.
Drupal 4: flexinode
Drupal 5: CCK
Drupal 6: “Nodificación” con CCK
Drupal 7: Entidades limitadas en core
Drupal 8: en core!
55. entidades en core : Drupal 8 - III
Un artículo o entrada de un blog
Un usuario
Un término de vocabulario
Cualquier estructura creada por nosotros
Una unidad de información estructurada
56. entidades en core : Drupal 8 IV
Funciones para crear, leer, actualizar y
borrar entidades.
Integración con Views y otros servicios/
componentes
“loadable” => Dispone de un conjunto de funciones
para gestionar la información.
57. entidades en core : Drupal 8 IV
Cada entidad puede tener “subtipos” =>
bundles.
Podemos “adjuntar” campos a las
entidades.
“optionally fieldable” => Cada tipo de entidad tiene
un conjunto de propiedades.
59. BIG PIPE EN DRUPAL 8
Nace en Facebook como un método para
optimizar la presentación de contenido.
BigPipe “separa” los bloque más pesados y
los carga de forma independiente.
El resto de elementos, menos pesados,
toman el “foco” y son presentados
mientras se cargan el resto de elementos.
https://www.youtube.com/watch?v=JwzX0Qv6u3A
61. rest in core- DRUPAL 8
Cualquier interfaz entre sistemas que usa
HTTP para obtener datos.
En Drupal 8 tenemos REST en core.
Drupal 8.0 y 8.1: rest.settings.yml
Drupal 8.2 REST resource config
setttings.
78. créditos
Drupal es una marca registrada de Dries Buytaert
Las imágenes son del genial James Gillard
El diseño del flyer del Drupal Day es de @quenerapu
Puedes usar este documento siempre que respetes su autoría y su licencia.