Retrofit, capa de compatibilidad con Drupal 7

drop with cogs
Solucionex
22
Sep 23

TL;DR: Retrofit es un "adaptador" para que la manera de escribir código de Drupal 7 funcione en Drupal 10. Pero tampoco hace milagros.

Retrofit es una capa de compatibilidad que habría venido genial al inicio de Drupal 8 allá por 2015, debido al cambio "traumático" que supuso a la hora de hacer las cosas (a mejor, por supuesto, pero igualmente fue un cambio tan grande que han vuelto a ampliar la fecha de soporte de Drupal 7 hasta 2025).

Qué hace Retrofit

Retrofit no es un módulo de Drupal. Es un paquete de composer que "recupera" automáticamente funciones que se usaban en Drupal 7, como por ejemplo el hook_menu para definir rutas o el uso de formularios con drupal_get_form(). De esta manera, se recupera en gran medida la manera de escribir código de Drupal 7.

Hay que tener en cuenta que esto no quiere decir que automáticamente se pueda copiar y pegar el código en una web de Drupal 10 y funcionar sin más. No están adaptados todos los hooks y lo que ejecuten estos puede que no funcione si por ejemplo se está cambiando la estructura de los tipos de contenido al migrar a una web Drupal 10.

Otor punto a tener en cuenta es la deuda técnica. Puede que Retrofit te permita acelerar la transición a una web Drupal 10, pero tarde o temprano habrá que terminar de portar el código a la manera de funcionar de Drupal 10 para evitar consecuencias inesperadas a futuro.

Cómo probar Retrofit

  • Instalar con:

    composer require retrofit-drupal/retrofit
  • Copiar un módulo o tema de Drupal 7 a la base de código de la web Drupal 10, convertir el archivo .info a .info.yml, y añadir:

       type: module
       core_version_requirement: ^10
  • En caso de ser un tema, aparte hay que convertir el archivo "template.php" a [NOMBRE DEL TEMA].theme, crear bibliotecas para los archivos definidos en "stylesheets" y "scripts" y referenciarlos a la manera de Drupal 10

Fuentes:

Retrofit