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

Thèmes

Dépréciations PHP 8.4 chez un cabinet de notaires : ce qui casse sans bruit

Un thème ancien pour un cabinet de notaires tourne encore sous PHP 8.4. Checklist des dépréciations qui cassent silencieusement, sans exception fatale, mais avec de vrais effets de bord.

Par Clément Hadrot • 23 juillet 2026 • 4 min de lecture • Aucun commentaire
Dépréciations PHP 8.4 chez un cabinet de notaires : ce qui casse sans bruit

Un client juridique peu enclin à refondre son site n’a pas besoin d’entendre parler de PHP 8.4 tant que rien ne casse visiblement. Le problème, avec les dépréciations introduites par cette version sortie en novembre 2024, c’est justement qu’elles ne cassent rien de façon spectaculaire : elles produisent des avertissements silencieux, invisibles pour un visiteur, mais qui s’accumulent dans les journaux d’erreurs jusqu’à devenir de vraies erreurs fatales dans une future version de PHP.

Ce qui a été trouvé dans functions.php

Le thème de ce cabinet de notaires date de plusieurs années et n’a jamais été retouché en profondeur. Une revue ciblée de functions.php après la montée de version PHP a permis d’identifier trois usages concernés par les dépréciations de PHP 8.4, aucun d’entre eux ne provoquant d’erreur fatale immédiate, mais tous générant des notices dans les journaux à chaque exécution du gabarit concerné.

Point 1 — Propriétés dynamiques non déclarées

Une classe utilitaire du thème assignait des propriétés à la volée sans les déclarer au préalable, un usage déjà déprécié depuis PHP 8.2 mais dont le traitement se durcit encore dans les versions suivantes. La correction consiste à déclarer explicitement chaque propriété utilisée, ou à ajouter l’attribut #[AllowDynamicProperties] sur la classe si la refonte complète n’est pas envisageable à court terme.

Point 2 — Fonctions de tableau appelées avec des arguments implicitement nullables

L'essentiel à retenir : Les dépréciations silencieuses de PHP 8.4 touchent surtout les fonctions de tableau ; Aucune ne provoque d'erreur fatale immédiate, ce qui les rend dangereuses ; Une revue ciblée des notices vaut mieux qu'une réécriture complète

Plusieurs appels de fonctions du thème passaient null à des paramètres typés sans déclarer explicitement leur nullabilité, un usage que PHP 8.4 traite désormais avec un avertissement de dépréciation plus strict. Dans functions.php, une fonction de mise en forme de date recevait parfois une valeur nulle sans que son paramètre ne soit déclaré ?string :

// Avant : génère une dépréciation en PHP 8.4
function wpm_formater_date( string $date ) {
    return $date ? date_i18n( 'j F Y', strtotime( $date ) ) : '';
}

// Après : nullabilité explicite
function wpm_formater_date( ?string $date ) {
    return $date ? date_i18n( 'j F Y', strtotime( $date ) ) : '';
}

Point 3 — Une fonction de tableau dépréciée dans son usage historique

Le thème utilisait encore une construction ancienne pour trier un tableau d’articles avant affichage, avec un rappel de fonction passé sous une forme que PHP considère désormais comme obsolète dans son traitement interne des types de callables. Remplacer ce rappel par une fonction fléchée explicite a supprimé la notice sans changer le comportement du tri.

Ce qui n’a heureusement pas posé de problème

  • Aucun appel direct à une fonction totalement supprimée de PHP, seulement des usages dépréciés mais encore fonctionnels
  • Le cœur WordPress lui-même, déjà compatible PHP 8.4 depuis plusieurs versions
  • Les extensions tierces utilisées par ce site, toutes maintenues et déjà à jour vis-à-vis de cette version

Checklist à suivre pour un thème ancien

  1. Activer temporairement l’affichage des notices et avertissements sur un environnement de test, jamais en production
  2. Parcourir functions.php et les gabarits à la recherche de propriétés de classe assignées sans déclaration préalable
  3. Vérifier la nullabilité des paramètres de chaque fonction utilitaire du thème appelée avec des valeurs potentiellement nulles
  4. Rechercher les callables passés sous une forme de chaîne de caractères plutôt qu’une syntaxe moderne
  5. Surveiller les journaux d’erreurs du serveur pendant au moins une semaine après la montée de version, avant de considérer le thème comme conforme

Une dépréciation qui ne casse rien aujourd’hui reste une dette qui se réglera, tôt ou tard, au moment le moins pratique possible.

En résumé

Un thème ancien peut cohabiter avec PHP 8.4 sans réécriture complète, à condition de traquer méthodiquement les usages dépréciés plutôt que d’attendre qu’ils deviennent des erreurs fatales dans une future version. Pour ce cabinet de notaires, ce travail a représenté moins d’une journée d’intervention, largement suffisant pour repousser sereinement l’échéance d’une refonte plus profonde du thème.

Partager :

À propos de l'auteur

Clément Hadrot

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

Voir tous ses articles

Dans la même veine

À lire aussi