Votre code est-il compatible Drupal 9 ?

Rédigé par Sylvain Lavielle
Développeur web freelance expert Drupal sur Toulouse

Le 26/08/2019
keyboard_arrow_left Bonne lecture ? Que diriez-vous de partager. sentiment_satisfied_alt

Drupal 9 arrive

La communauté Drupal s'apprête encore une fois à de nouveaux changements dans le courant de l'année prochaine. C'est en effet en juin 2020 qu'est prévue la sortie de la nouvelle mouture de Drupal qui sera donc la 9eme en titre.

Contrairement à ce que pourrait laisser penser le changement de version majeure, Drupal 9, devrait être plutôt une mise à jour du socle technique dont les principaux points importants devraient être :

  • La suppression des éléments dépréciés dans Drupal 8
  • Le passage à Symfony 4

Les vraies nouveautés de Drupal 9 devraient intervenir par la suite dès la version 9.1

Comment s'y préparer ?

En tant que développeur, il convient déjà de se préparer en rendant notre code aussi compatible que possible avec cette prochaine version.

Conformément à sa politique de dépréciation, la documentation Drupal 8 indique les classes et méthodes dépréciées qui seront supprimées dans la nouvelle version de Drupal comme par exemple le fameux entityManager déprécié depuis fort longtemps, mais que l'on trouve encore très régulièrement dans les exemples de codes présents sur le net.

Le code source de Drupal 8 contient également des annotations phpdoc @deprecated. Si vous utilisez un IDE tel que PHPStorm, qui est capable d'utiliser les annotations phpdoc présentes dans le code, celui-ci vous signalera de façon très visible les parties où du code déprécié est utilisé, vous permettant ainsi d'en éviter l'usage facilement.

Cependant, sur certains projets ayant un peu vécu les appels dépréciés peuvent avoir subsistés dans certaines parties du code. Le core Drupal lui-même n'échappe pas à la règle et la communauté s'est lancé il y a 4 mois dans une campagne de nettoyage afin de supprimer quelques 4402 utilisations dépréciées de l'api Drupal dans le core Drupal au prix d'un effort dûment salué par Dries Buytaert, le créateur de Drupal.

Dans ce type de situation, certains outils tel que drupal-check peuvent se révéler être d'une aide précieuse. Cet outils en ligne de commande basé sur PHPStan est capable d'analyser le code d'un module ou d'un projet pour y détecter les traces d'utilisation dépréciées de l'API Drupal qui rendront celui-ci inutilisable avec Drupal 9.

Sujets abordés dans cet article