Expertos en Drupal

¿Qué novedades nos traerá Drupal 8?

Drupal 8 está a punto de ver la luz e intentaremos explicar cuáles son las novedades de esta esperada versión de Drupal.

Drupal 8: novedades
Roger Codina
Roger Codina

December 09, 2019

Novedades en Drupal 8

Drupal 8 – Core Initiatives

Drupal 8 es la primera versión de Drupal que va a organizar su desarrollo en las llamadas “Core Initiatives”. Cada una de estas estará liderada por una persona responsable.

Tener esta estructura le da un orden al desarrollo, y le permite escalar más, ya que el líder del proyecto no tiene que ver cada uno de los detalles de las iniciativas, sino que se coordina con cada uno de los responsables de estas iniciativas.

  • Configuration Managment Initiative
  • Web Service Initiative
  • Layouts Initiative
  • Mobile
  • Multilingual
  • Views in Core Initiative
  • HTML5 Initiative
  • Otras iniciativas

Drupal 8 – Configuration Managment Initiative

Esta iniciativa trata de resolver los siguientes problemas:

  • Tener una forma de mover la configuración entre ambientes. Eso significa unificar el formato y sacarlo de la base de datos.
  • Poder controlarlo con un controlador de versiones y volver a versiones antiguas.
  • Estandarizar el formato. Esto actualmente no existe.
  • Tener una API estandarizada para guardar y recuperar esta información.
  • Permitir que no sea necesario cargar toda la tabla de variables en cada carga de página.

Almacenamiento en Archivo

  • A nivel más bajo la configuración se guarda en archivos.
  • Los módulos contienen un archivo donde está la configuración por defecto.
  • Cuando se cambia esta configuración mediante Site Building se crea una copia de los archivos dentro de la carpeta files. Esta carpeta tiene un nombre especial por un tema de seguridad.

Configuración Activa

  • Para la configuración activa se utilizará un envoltorio que permita una lectura mucho más fácil.
  • Para la mayoría de sitios Drupal tendrá un almacenamiento en base de datos. Sin embargo, para sitios de alto rendimiento se podrán utilizar otras alternativas como MongoDB o Redis.

API de Configuración

  • Permitirá recuperar y cambiar el valor de las variables de configuración a través de código.
  • Gracias a esta API se unificará la forma de guardar y recuperar los valores de las variables.

Drupal 8 – Web Service Initiative

  • Hacer de Drupal un servidor REST de primera clase. En este contexto servir HTML sería un caso particular.
  • Para lograr este objetivo se han usado componentes Symfony. Después de intentar una solución propia, Larry Garfield hizo una prueba de concepto con componentes Symfony y en muy poco tiempo (unas horas) logró hacer funcionar la solución.

Symfony trabaja bajo una arquitectura que maneja toda petición como un binomio Request/Response, es decir, parte de la idea que toda actividad web se inicia des de un Request y concluye con un Response.

  • Para la Inyección de dependencias se ha usado Pimple, que en realidad no es parte de Symfony. Esta inyección de dependencias ayuda a tener componentes reutilizables (service) y a que sea mucho más fácil el testing, entre otras cosas.
  • Solo se han cambiado las capas más altas, ya que los otros elementos Drupal se han mantenido igual.
  • Hace uso de muchas de las características de las últimas versiones de PHP en lo que respecta a programación orientada a objetos.

Drupal 8 – Layouts Initiative

  • Brindar unidad a un sistema inconexo de componentes (bloques, page callbacks, menús, configuración de temas, etc.).
  • Proveer un mecanismo estandarizado de salida (output).
  • Nuevas herramientas para colocar contenido en la página.
  • Mejorar potencialmente el rendimiento.
  • Actualmente los bloques son parte del core, que incluye un mecanismo para mostrar bloques.
  • Sin embargo, tiene algunas omisiones como, por ejemplo, la posibilidad de mostrar varias veces el mismo bloque.
  • Se han creado varias soluciones como Context, Panels y Display Suite. Este iniciativa pretende elaborar una solución que tome las enseñanzas de estos módulos.
  • Se pretende convertir todo elemento en la página en un bloque.
  • Estos bloques serían inteligentes y podrían utilizar configuración por instancia de los mismos.
  • Por otro lado, se cambia la idea de tener regiones específicas dentro de los temas por algo más configurable, es decir, que se pueda modificar por site building.
  • Para esto se puede disponer de una paleta de layouts (3 columnas, rejilla, etc.), incluyendo la posibilidad de anidar un layout dentro de otro. También la posibilidad de que se seleccione un layout dependiendo de los datos contextuales. Por ejemplo, tener un layout para páginas, otro para noticias, otro para productos, etc.

Drupal 8 – Mobile Initiative

El reto es ayudar a hacer Drupal el CMS líder en móviles. Esta iniciativa se concentrará en los siguientes elementos:

  • Servicios web para integración con aplicaciones nativas.
  • Elementos HTML5 necesarios para aplicaciones web HTML5.
  • La posibilidad de usar los formularios administrativos en dispositivos móviles.
  • Todos los temas del core de Drupal 8 deben ser responsive.
  • Mejoras en el rendimiento del front end.

Drupal 8 – Multilingual Initiative

Hay que hacer que varios elementos sean multi lenguaje:

  • La parte administrativa (a veces)
  • El contenido
  • Los items de menú
  • Los bloques
  • Las vistas

Para Drupal 8, se tiene planificado usar la experiencia en Drupal 7 y los módulos contribuidos para incluir un mejor soporte multi lenguaje en el core de Drupal.

Base service. Se creará language.module. Se está trabajando en mejoras como:

  • La posibilidad de quitar el inglés de la lista de idiomas.
  • Configuración más fácil del idioma.
  • Poder asignar idioma a todo incluyendo términos de taxonomía, archivos y mucho más.
  • Mover el idioma a las primeras fases de la instalación.

Software Interface. Se trabajarán sobre todo las mejoras de código de las funciones t() y format_plural(). Entre los objetivos propuestos:

  • Mejorar el rendimiento.
  • Resolver los errores (bugs).
  • Consolidar todos los archivos fuente .po en un solo directorio.
  • Crear una forma automática de identificar y descargar los archivos de este directorio.
  • Desacoplar este sistema de la configuración de traducción.
  • Mejorar la interfaz de traducción.

Contenido:

Estandarizar la forma de traducción. Se usará el modelo de campos de entidad.

  • Se buscará una forma estándar de poder traducir otras propiedades como estado o autor.
  • De esta manera se podrá usar el mismo modelo de traducción para otras entidades (idealmente toda entidad): taxonomías, archivos, etc.
  • Esto implica quitar el actual content translation module, que utiliza otra forma de traducción basado en copias de nodos.

Configuración y Usabilidad:

  • Soporte de traducción para bloques, vistas, formulario de contacto, rules, etc.
  • Hay una lista de issues de usabilidad a tener en cuenta.

Drupal 8 – Views in Drupal Core Initiative

  • Hasta Drupal 7, Views ha sido uno de los módulos contribuidos más populares.
  • Permite generar listados o consultas sobre diferentes elementos del sitio web.
  • A partir de Drupal 8, Views formará parte del core.

Drupal 8 – HTML5 Initiative

El objetivo principal es implementar HTML5 en el core de Drupal de forma que:

  • Tenga el mayor beneficio para los usuarios finales.
  • Permita a los módulos y temas contribuidos utilizar HTML5.
  • Permita a los desarrolladores de temas controlar donde usar los nuevos elementos semánticos. Incluso no usarlos por completo si así lo desean.

La mayor atención estará centrada en:

  • Agregar a la API de formulario soporte para los nuevos elementos.
  • Agregar nuevos elementos semánticos en las plantillas del core de una forma apropiada.
  • Agregar roles ARIA al marcado para mejorar la accesibilidad.
  • Simplificar los estilos y los elementos de script.
  • Asegurar que los formatos de entrada y funciones acepten elementos HTML5.

Drupal 8 – Otras Iniciativas

  • WYSIWYG Editor. Se va a incluir CKEditor en el core. En un principio se pensó en Aloha, pero en una decisión de último minuto finalmente se seleccionó CKEditor. El creador de CKEditor, Frederico Knabben, ofreció su ayuda para hacer que CKEditor y Drupal trabajen juntos.
  • Twig Templating Engine into D8. Twig es un sistema de plantillas que resulta más sencillo para las personas que no conocen PHP.
  • Design Initiative. Creación de nuevos temas Drupal 8.
  • Clean up core initiative.
  • Javascript.
  • File Managment (file entity in core).

Mas Información en:

  • http://softwinperu.com/
  • https://drupal.org/community-initiatives/drupal-core

Drupal 8 – slideshow

                     

                                  Artículos Relacionados