PHP 8.4 : nouveautés, changements et mise à niveau sécurisée
PHP 8.4 est une version majeure de PHP avec des fonctions favorisant un code plus clair, un contrôle d’accès renforcé et des APIs modernes. Une mise à niveau ne doit jamais être considérée comme sûre sans tests de compatibilité.
Nouveautés importantes
Property hooks
Ils permettent de définir la logique get et set directement sur une propriété et réduisent les getters/setters répétitifs.
class User {
public string $name {
set => trim($value);
}
}
Visibilité asymétrique
Une propriété peut avoir une visibilité différente en lecture et en écriture.
class Order {
public private(set) string $status = 'pending';
}
Attribut #[Deprecated]
Les fonctions, méthodes et constantes peuvent être marquées deprecated de façon standard afin que les IDEs et outils d’analyse avertissent les développeurs.
Nouvelles fonctions de tableaux
array_find(), array_find_key(), array_any() et array_all() simplifient les recherches et conditions courantes.
Lazy objects et APIs
PHP 8.4 apporte une API officielle de lazy objects, surtout utile aux frameworks et à l’injection de dépendances. Il ajoute aussi des améliorations DOM avec HTML5, une API objet BCMath, des sous-classes PDO propres aux drivers et une syntaxe simplifiée après new.
Changements pour les développeurs
Le code existant n’a pas besoin d’adopter immédiatement la nouvelle syntaxe. Avant de l’utiliser, confirmez PHP 8.4 en production et le besoin éventuel de prendre en charge d’anciennes versions.
Dépréciations et compatibilité
Les paramètres implicitement nullable doivent être déclarés avec ?Type ou Type|null. E_STRICT, mysqli_ping() et trigger_error(..., E_USER_ERROR) sont également deprecated. Un avis n’est pas toujours fatal immédiatement, mais signale du code à corriger.
Avant la mise à niveau
- Documentez version PHP, extensions, paramètres INI et tâches planifiées.
- Créez une sauvegarde complète et vérifiez sa restauration.
- Préparez un staging proche de la production.
- Mettez d’abord à jour application, WordPress, WooCommerce, extensions et thèmes.
- Contrôlez les exigences vendors et Composer.
- Documentez l’ancienne version et le rollback.
WordPress et WooCommerce
La compatibilité du cœur WordPress ne garantit pas celle de chaque extension ou thème. Pour WooCommerce, testez catalogue, panier, checkout, callbacks de paiement, e-mails, Scheduled Actions et intégrations.
Tests sur staging
- Mesurez une baseline.
- Changez PHP uniquement sur staging.
- Testez frontend, administration, connexion, formulaires, uploads, cron et APIs.
- Contrôlez fatal errors, warnings et dépréciations dans les logs.
- Testez les parcours critiques, les performances et le TTFB.
- Déployez en production seulement après validation, durant une fenêtre contrôlée.
Rollback
En cas d’erreur, restaurez la version PHP précédente et le backup vérifié si le code ou les données ont changé. Videz les caches concernés puis contrôlez frontend, administration, checkout et logs.