Con más de 200 nuevas características y mejoras, el próximo lanzamiento de la plataforma líder de gestión de contenido web en el mundo del código abierto te seducirá. Así comienza el primer párrafo de la sección de Drupal 8 que drupal.org está dedicando en su próximo lanzamiento.
En SeeD, nos dejamos seducir por esta nueva versión y, por lo tanto, asumimos la tarea de migrar nuestro sitio anterior de Drupal 7 a Drupal 8, aprovechando un nuevo y limpio diseño. Este es el primero de una serie de artículos en los que explicaremos nuestra experiencia en esta emocionante aventura: desde la concepción hasta el lanzamiento y mantenimiento de nuestro nuevo sitio en Drupal 8.
Drupal 8 todavía está en fase beta y no se recomienda para usuarios no técnicos ni para la construcción de sitios de alto tráfico o alta disponibilidad. En esta etapa, se recomienda que los desarrolladores y constructores de sitios (site builders) prueben y contribuyan a la solución de "bugs" o errores críticos encontrados durante las pruebas.
¿Cuándo estará listo Drupal 8?
Esta es la pregunta del millón. Para conocer su estado ha habido varios esfuerzos por parte de expertos, uno de los que parece cercano a la realidad es el Drupal Release Date, un sitio que, de acuerdo con los nuevos problemas que se crean (activos) y los que se resuelven (corregidos), estima la fecha de lanzamiento. Incluso hay una cuenta de Twitter @ isd8outyet que menciona diariamente si Drupal 8 ha sido lanzado, es decir, dice "sí" o "no", como puedes imaginar, hasta ahora solo ha tuiteado "no". Lo que es cierto es que el primer RC (release candidate) de Drupal 8 se lanzará cuando haya cero problemas críticos y se lanzará como una versión estable cuando haya cero problemas mayores. Lo interesante es que puedes hacer una predicción de cuándo estará listo Drupal 8 y ganar un ticket de premio para el próximo DrupalCon en Drupal 8 Hivemind. Según la estimación dada por Dries Buytaert en una charla informal y "off-the-record" durante DrupalCon LatAm en Bogotá, cree que para abril de 2015 estarán muy cerca del "release candidate".
Una de las cosas que rápidamente notas cuando empiezas a desarrollar con esta nueva versión es que la documentación de Drupal 8 en comparación con Drupal 7 es escasa. Por supuesto, esto se resolverá a medida que se vuelva más estable, el desarrollo se está moviendo rápidamente y necesita continuar a este ritmo para llegar a su versión madura lo antes posible. Así que debemos tener buenas habilidades para buscar en Google, inspeccionar y aprender del código del núcleo, utilizar el método de ensayo y error y preguntar en IRC o en Drupal Answers.
Sobre los constructores de sitios (site building):
Drupal 8 es increíble. En poco tiempo puedes construir casi todo el sitio sin usar un módulo contribuido. A veces te encuentras con algunos errores, pero es de esperarse en versiones beta.
-
La construcción de tipos de contenido es más poderosa. Puedes configurar modos de vista, modos de formulario y muchos campos diferentes, como correo electrónico, referencia de entidad, enlace, etc.
-
Capacidad para realizar un sitio multilingüe: ya no necesitas tener una docena de módulos para esto, está incluido en el núcleo de Drupal 8. Desde la primera pantalla de instalación puedes seleccionar tu idioma nativo y, desde allí, todo se traducirá, incluidas las vistas y los campos de imagen.
-
Editor WYSIWYG ahora es parte del núcleo. También se incluyó un editor en línea para editar más rápido, es decir, no tienes que ir a una página para editar contenido, sino que puedes hacerlo directamente en el elemento de visualización. ¡Es genial!
-
Views: también se incluyó en el núcleo y funciona de maravilla.
Con respecto al back-end:
-
Enfocado en los estándares actuales: se incluyeron algunos componentes como el Symfony framework y otras bibliotecas externas como Composer, PHPUnit, Guzzle, el componente Zend Feed, Assetic y más. Esta nueva versión incluye un código mucho más moderno, es orientado a objetos (clases, herencia, interfaces, etc.) e incluye los últimos estándares de PHP (ej. PSR-0, PSR-4, namespaces, traits). ¡Drupal ya no estará en una isla!
-
Muchos componentes son plugins y para modificar su comportamiento, solo necesitas extender la clase y colocarla en el "namespace" correcto.
-
Consejo: Si vas a desarrollar un sitio de producción, debes asegurarte de usar versiones beta y no versiones dev.
-
No puedes hacer una "actualización" de una versión beta a otra. Así que, para actualizar, ten cuidado. Consejo: cuando se lance una versión beta, en la descripción puedes leer sobre los aspectos a considerar al actualizar de una beta a otra.
-
El sistema de traducción es verdaderamente espectacular.
-
Servicios web en el núcleo: puedes publicar contenido en formato JSON o XML (está integrado en Views) para que sea consumido por otra aplicación, lo cual es muy útil para "headless".
Con respecto al front-end:
-
La construcción de un tema personalizado para Drupal 8 es un proceso casi completamente diferente al de la construcción de uno para Drupal 7.
-
Lo más notable es el cambio en el motor de plantillas de PHP Template a Twig. Este último es mucho más fácil e intuitivo que su predecesor, y no necesitas saber PHP para hacer una plantilla.
-
En muchas ocasiones fue necesario usar {{dump ()}} para mostrar todas las variables disponibles en la plantilla y elegir las necesarias.
-
Drupal 8 ha agregado un extenso soporte para tecnologías estándar de accesibilidad, incluidas WAI-ARIA, y ha estado trabajando para proporcionar un HTML5 más semántico.
Crear sitios web con Drupal 8 es posible hoy en día. Por supuesto, debemos ser conscientes de las limitaciones de los módulos que aún no han sido migrados y de los errores que aún se pueden encontrar en el núcleo. Por otro lado, te sientes bien trabajando con Drupal 8. Han incorporado las mejores prácticas tanto en el back-end como en el front-end, y la experiencia de crear sitios web utilizando su interfaz, que es realmente sólida. ¡Y, de hecho, nos ha seducido! Estamos ansiosos por contarles cómo va el desarrollo de nuestro primer proyecto en Drupal 8 para un cliente.