Le WordPress d'aujourd'hui, décodé pour les développeurs

Headless & API

PHP 7.4 en headless : l’audit d’un chef de projet avant la montée de version

Fin de vie de PHP 7.4 le 28 novembre 2022 : comment un chef de projet technique a audité un projet headless ancien pour planifier une montée de version compatible avec le front en place.

Par WordPress Développement • 1 juin 2023 • 4 min de lecture • Aucun commentaire
PHP 7.4 en headless : l'audit d'un chef de projet avant la montée de version

Le 28 novembre 2022, PHP 7.4 est officiellement sorti de sa période de support, plus aucun correctif de sécurité n’étant produit depuis cette date. C’est ce repère précis qui a servi de point de départ à l’audit mené sur une plateforme de mise en relation entre artisans et particuliers, dont l’API REST headless tournait encore sur cette version depuis sa mise en ligne initiale, plusieurs années plus tôt.

Le rôle confié au chef de projet technique n’était pas de faire la montée de version lui-même, mais de produire un audit complet permettant de planifier l’opération sans mauvaise surprise : quelles extensions actives, quelles fonctions dépréciées utilisées dans le code métier, et surtout, quel impact potentiel sur le front qui consommait l’API depuis un serveur distinct.

Pourquoi cet audit était devenu urgent

Le projet fonctionnait sans incident apparent, ce qui rendait la demande difficile à justifier auprès de la direction : « si rien n’est cassé, pourquoi migrer ? ». L’argument retenu n’était pas la performance, marginale entre PHP 7.4 et une version plus récente sur ce projet précis, mais l’absence totale de correctif de sécurité depuis la fin de vie annoncée, un risque grandissant à mesure que des vulnérabilités seraient découvertes sans jamais être corrigées côté langage.

Le périmètre de l’audit

L’audit a commencé par un inventaire complet des dix-sept extensions actives sur le site, avec pour chacune la vérification de sa compatibilité annoncée avec PHP 8.0 et 8.1 sur le répertoire officiel des extensions WordPress. Trois extensions se sont révélées problématiques : deux n’avaient pas été mises à jour depuis plus de deux ans, la troisième signalait explicitement une incompatibilité avec PHP 8.

L'essentiel à retenir : PHP 7.4 est en fin de vie depuis le 28 novembre 2022, sans plus aucun correctif ; L'audit a porté sur les extensions actives, pas seulement sur le code du thème ; Le front consommait l'API sans connaître la version de PHP, ce qui a simplifié la bascule

Le code métier propre au projet a ensuite été passé au crible avec l’outil PHP_CodeSniffer configuré avec le standard WordPress-Compat, qui repère les fonctions dépréciées ou supprimées entre versions de PHP. L’audit a relevé plusieurs usages de la fonction create_function(), définitivement supprimée en PHP 8.0, ainsi que des appels à des fonctions de tableau avec un ordre d’arguments qui devenait strictement typé dans les versions récentes.

vendor/bin/phpcs --standard=PHPCompatibilityWP \
  --runtime-set testVersion 8.1 \
  wp-content/plugins/artisans-api/

Ce que le front a simplifié

Un point a nettement facilité l’audit : le front, développé séparément en Vue.js et hébergé sur une infrastructure distincte, ne connaissait absolument rien de la version de PHP utilisée côté WordPress. Il consommait l’API REST via des requêtes HTTP classiques, sans dépendance directe au runtime PHP. La montée de version pouvait donc, en théorie, se faire sans coordination avec l’équipe front, à condition que les réponses de l’API restent identiques en structure.

Les points de vigilance identifiés

  • Trois extensions à remplacer ou à mettre à jour avant toute bascule
  • Six occurrences de create_function() à réécrire en fonctions anonymes classiques
  • Un endpoint personnalisé qui reposait sur un comportement implicite de tri de tableau, modifié entre PHP 7 et PHP 8
  • Un environnement de préproduction à créer, absent jusque-là du projet

Un audit avant une montée de version majeure de PHP ne sert pas à rassurer, il sert à transformer une inconnue en liste de tâches. Une liste qui fait peur au premier regard est toujours préférable à une bascule en production sans elle.

Ce que cet audit n’a pas traité

La sécurité globale du projet, au-delà de la seule question de la fin de vie de PHP 7.4, n’entrait pas dans le périmètre de cette mission. L’audit s’est volontairement concentré sur la compatibilité technique de la montée de version, laissant à un travail distinct l’examen plus large des pratiques de sécurité de l’application, jugé hors sujet pour cette étape précise.

Le bilan de l’audit

Le document remis à la direction listait dix-sept extensions vérifiées, six corrections de code nécessaires et une estimation de deux semaines de travail avant une bascule vers PHP 8.1. La direction, convaincue par le repère de fin de vie officielle plutôt que par un argument de performance, a validé le calendrier proposé sans négociation supplémentaire.

En résumé

Un audit avant montée de version PHP sur un projet headless gagne à séparer clairement ce qui touche au code métier de ce qui touche au front consommateur de l’API. Dans ce cas précis, la séparation stricte entre les deux couches a nettement réduit le risque perçu de l’opération, le front n’ayant jamais eu besoin de connaître le détail de la version de PHP tournant côté serveur.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partager :

À propos de l'auteur

WordPress Développement

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi