La nueva versión de Drupal: Drupal 8
Drupal es un marco de gestión de contenidos o CMS libre, modular multipropósito y muy configurable que permite publicar artículos, imágenes, archivos y otras cosas u otros archivos y servicios añadidos como foros, encuestas, votaciones, blogs y administración de usuarios y permisos.
Falta menos de un mes para la retirada de Drupal 6 como versión estable con soporte oficial, que con total certeza dejará a miles de sitios web desprovistos de actualizaciones de seguridad. Creo que merece la pena hacer un pequeño resumen de todos los avances que se han incorporado en Drupal 8, la flamante nueva versión con apenas un par de meses de vida que representa una completa revolución para los usuarios de Drupal, tanto a nivel funcional como técnico, y no es para menos: Drupal 8 es quizás la versión más ambiciosa de todas la que se han desarrollado. Supone un cambio absolutamente radical en la arquitectura del software, mientras que a la vez trata de mejorar la experiencia de usuario para arquitectos de la plataforma y usuarios finales.
Quizás el cambio del que todo el mundo habla, y que más admiradores y detractores ha cultivado, es la inclusión de componentes del popular framework de PHP, Symfony2. Drupal ahora integra los componentes de Routing, HttpKernel, DependencyInjection, etc, como piezas centrales del framework, a la vez que aprovecha la ocasión para introducir de forma extensiva el paradigma de programación orientada a objetos que antes sólo encontrábamos en ciertos fragmentos de código. Junto a ello, se siguen estándares de desarrollo ampliamente usados en la comunidad PHP como puede ser PSR-4 para estructurar el código y descubrir clases y nuevos módulos.
Sin dejar el Core a un lado, Drupal 8 integra y mantiene módulos que en Drupal 7 formaban parte del ecosistema de los comunitarios, como Views o Migrate, que ahora se convierte en el procedimiento oficial para realizar traspasos de contenido a una nueva instalación de Drupal en caso de actualización desde versiones anteriores, dejando atrás los complicados métodos de actualización que tantos quebraderos de cabeza han dado en ocasiones. Muy buenas noticias ya que tendremos soporte de primera mano para estos módulos, que a fin de cuentas resultaban imprescindibles en la mayoría de los nuevos desarrollos.
A nivel funcional, Drupal 8 ha querido seguir apostando por su definición de «framework», más que de «CMS», desacoplando la capa de presentación de la lógica de negocio, haciendo posible construir interfaces de aplicaciones (API) usando Drupal sin necesidad de mantener una capa que presente el contenido como HTML, posibilitando la integración de Drupal con otros frameworks específicos para frontend como React o AngularJS, una característica pedida a gritos desde hace ya algún tiempo. No obstante, para los casos más generales, otra de las características «prestadas» de Symfony es el motor de plantillas Twig, que reemplaza a PHPTemplate para dar forma a las páginas renderizadas en HTML.
El equipo de UX de Drupal se ha esforzado enormemente en que esta versión sea la más agradable y accesible de la historia, y para ello han mimado las interacciones del usuario con las pantallas de configuración, diseños responsive por defecto, y mucha mejor semántica HTML y adhesión a estándares de accesibilidad (WAI y ARIA) para personas con discapacidades severas. La internacionalización también es una característica que ha recibido mucha atención por parte de los desarrolladores, y que se ha visto mejorada notablemente.
Drupal 8 también trae novedades para los encargados de operaciones y despliegues, pues uno de los problemas que tradicionalmente ha caracterizado a Drupal, ha sido la materialización de configuraciones de los distintos entornos de desarrollo y producción, problema que cada uno intentaba solucionar «a su manera» y con mayor o menor éxito.
Además, incorpora de serie la posibilidad de sobrescribir el almacén principal de configuraciones, que tradicionalmente ha sido la base de datos, permitiendo importar, exportar y sincronizar configuraciones entre distintos entornos a través de ficheros YAML. También, la inclusión de PHPUnit como complemento a SimpleTest para los tests unitarios proporciona una herramienta estándar y bien conocida para mejorar la calidad de código en entornos de integración continua.
Por todo esto, y por muchas otras cosas más que me dejo en el tintero, creo que Drupal 8, a pesar de parecer haberse demorado en el tiempo con respecto a su antecesor, ha traído bajo el brazo características que bien han valido el tiempo de espera, y que sin duda contribuirá a mejorar la calidad de los desarrollos y a la experiencia final de los usuarios.
¡VIVA! 🙂