Primeras impresiones con Drupal 8

Primeras impresiones con Drupal 8

Por: Rolando Payán Mosqueda, Desarrollador Drupal en SeeD

Con más de 200 nuevas características y mejoras, el próximo lanzamiento de la plataforma de gestión de contenidos web líder en el mundo de código abierto le seducirá. Así reza el primer párrafo de la sección de Drupal 8, que drupal.org dedica a su próxima entrega.

En SeeD nos hemos dejado seducir por esta nueva versión y por ello nos dimos a la tarea de migrar nuestro anterior sitio de Drupal 7 a Drupal 8, no sin aprovechar una limpieza de cara en el diseño. Este el el primero de una serie de artículos donde explicaremos nuestra experiencia  en esta interesante aventura, desde la concepción, lanzamiento y mantenimiento de nuestro nuevo sitio en Drupal 8.

Drupal 8 se encuentra todavía en fase beta y no está recomendado para usuarios no técnicos ni para construir sitios de alto tráfico o de alta disponibilidad. En esta fase está recomendado para que desarrolladores y constructores de sitios (site builders) lo prueben y aporten en la solución de “bugs” o errores críticos encontrados durante las pruebas.

¿Cuando estará listo Drupal 8?

Esta es la pregunta del millón, para conocer su estado se han hecho varios esfuerzos por parte de cabalistas,  uno que parece cercano a la realidad es Drupal Release Date, sitio que de acuerdo con los “issues” nuevas que se van creando (active) y los que son resueltos(fixed) estima una fecha de lanzamiento. Incluso hasta hay una cuenta en Twitter @isd8outyet que diariamente dice si drupal 8 ha sido liberado, o sea, dice “sí” o “no”, como deben estar pensando, hasta la fecha solo ha twitteado “no”. Lo que sí es cierto que la primera RC(release candidate) de Drupal 8 verá la luz cuando existan cero critical issues y será liberada como versión estable cuando existan cero major issues. Interesante es que puedes hacer una predicción de cuándo estará listo Drupal 8 y ganar como premio una entrada para la próxima DrupalCon en Drupal 8 Hivemind. De acuerdo con la estimación dada por Dries Buyaert, en una charla informal y “out-of-the-record” durante el Drupal Con LatAm en Bogotá, él cree que para abril de 2015 se debe estar muy cerca del “release candidate”

Unas de las cosas que rápidamente uno se da cuenta cuando empieza a desarrollar con esta nueva versión es que la documentación de Drupal 8 comparada con Drupal 7 es muy escasa. Por supuesto que esto se irá solucionando en la medida en que se vaya logrando la estabilización , pues su desarrollo, se mueve rápidamente y necesita seguir así para llegar lo más pronto a su versión más madura. Así que nos toca tener buenas habilidades para realizar búsquedas en google, inspeccionar y aprender con el código del core, utilizar el método de prueba y error, y preguntar en IRC o en Drupal Answers.

Con respecto a los constructores de sitios (site building):

Drupal 8 es increíble. En poco tiempo puedes construir casi todo el sitio, sin utilizar ningún módulo contribuido. Algunas veces te encuentras con algunos errores, pero es de esperar en versiones betas.

  • La construcción de tipos de contenidos en más poderosa, puedes definir view modesform modes y muchos tipos de campos como e-mail, entity referencelink, etc.

  • Capacidad para realizar un sitio multi idioma: ya no es necesario tener una docena de módulos para esto, Drupal 8 lo tiene incluido en core. Desde la primera pantalla de instalación puedes seleccionar tu idioma nativo y a partir de ahí estará todo traducido, incluyendo las vistas y los campos de imágenes.

  • Editor WYSIWYG ya es parte del core. Se incluyó también un editor en línea para hacer ediciones mucho más rápida, es decir ya no tienes que ir a una página de edición del contenido, sino que lo puedes hacer directamente sobre la visualización del artículo ¡es genial!.

  • Vistas: se ha incluido también en el core y trabaja de maravilla.

Con respecto al back-end:

  • Enfocado en los estándares actuales: se incluyó algunos componentes del framework Symfony, y otras librerías externas como Composer, PHPUnit, Guzzle, el componente Zend Feed, Assetic y más. Esta nueva versión incluye código mucho más moderno, orientado a objetos (clases, herencia, interfaces, etc) e incluye los últimos estándares de PHP (por ejemplo PSR-0, PSR-4, namespaces, traits). ¡Ya Drupal no estará en una isla!.

  • Muchos componentes son plugins y para modificar su comportamiento, solo se  necesita extender esa clase y ponerla en el “namespace” correcto.

  • Consejo: Si vas a desarrollar un sitio para salir a producción hay que asegurarse de utilizar versiones betas y no versiones dev.

  • Todavía no se puede hacer un “upgrade" de una versión beta a otra. Así que, para actualizar tener cuidado, consejo: cuando se libera una versión beta, en la descripción puedes leer aspectos a tener en cuenta cuando se vaya a actualizar de un beta a otra.

  • El sistema para traducciones es realmente espectacular.

  • Servicios Web en el core: se puede publicar contenido en un formato JSON o XML (está integrado en las Vistas) para que después sea consumido por otra aplicación, muy útil para hacer headless.

Con respecto al front-end:

  • La construcción de un tema personalizado para Drupal 8 es un proceso casi completamente diferente que la construcción de uno para Drupal 7.

  • Lo más notable es el cambio del motor del plantilla de PHP Template a Twig, este último es mucho más fácil e intuitivo que su antecesor, y además no tiene que saber PHP para hacer una plantilla.

  • En muchas ocasiones hubo que usar {{ dump() }} para mostrar todas las variables disponibles en el template para escoger las necesarias.

  • Drupal 8 ha añadido un amplio soporte para las tecnologías de accesibilidad estándar incluyendo WAI-ARIA y ha estado trabajando para proporcionar un HTML5 más semántico.

La creación de sitios web con Drupal 8 es posible hoy en día. Por supuesto tenemos que ser consciente de las limitaciones con respecto a que los módulos que aún no han sido migrados y que todavía se pueden encontrar errores en el core. Por otro lado, trabajando con Drupal 8 uno se siente bien: se han incorporado las mejores prácticas tanto en el back-end como en el front-end y la experiencia de crear sitio web mediante su interfaz es realmente sólida. Y efectivamente ¡nos ha seducido!. Esperamos con muchas ansias contarles como nos va con el  desarrollo de nuestro primer proyecto para un cliente, en Drupal 8.