Où en est le support de PHP 7.3 et 7.4 ?
| Critère | PHP 7.3 | PHP 7.4 |
|---|---|---|
| Sortie | décembre 2018 | novembre 2019 |
| Fin des correctifs de bugs | décembre 2020 | novembre 2021 |
| Fin des correctifs de sécurité | décembre 2021 | novembre 2022 |
Statuts vérifiés le 08/11/2026 sur les pages officielles de version.
Les ruptures à traiter en premier
Le chemin de migration, étape par étape
Chaque version mineure de PHP a son guide de migration officiel ; on les applique dans l’ordre, avec la CI au vert entre deux étapes. Avant de lancer le chantier, un audit Bear Scan avant de migrer chiffre la dette qui ralentira chaque étape.
Passer à PHP 7.4
- À traiterAccéder à null, bool, int, float ou resource comme à un tableau ($null['key']) génère désormais une notice.source
- À traiterfn devient un mot réservé : il ne peut plus nommer une fonction ou une classe (reste possible pour une méthode ou une constante de classe).source
- À traiterTernaires imbriqués sans parenthèses explicites et accès par accolades $var{$idx} sur tableaux et chaînes sont dépréciés.source
- À traiterimplode() avec l'ordre historique des paramètres (tableau, séparateur) est déprécié ; money_format(), le cast (real) et is_real() aussi.source
- À traiterLes constantes PASSWORD_* deviennent des chaînes ('2y', 'argon2i') au lieu d'entiers ; le code qui compare ou stocke l'entier doit être revu.source
Extensions
- Nouvelle extension FFI pour appeler des bibliothèques C natives depuis PHP.source
- get_magic_quotes_gpc() et get_magic_quotes_runtime() sont dépréciées (renvoient toujours false).source
Pièges rencontrés en migration
- Le préchargement OPcache (opcache.preload) fige les classes en mémoire jusqu'au redémarrage de PHP-FPM : un déploiement sans redémarrage garde l'ancien code.source
- Les propriétés typées non initialisées lèvent une Error à la lecture ; l'introduction de types sur un modèle hydraté par un ORM demande des valeurs par défaut ou une initialisation.source
Rector : LevelSetList::UP_TO_PHP_74
Ce que PHP 7.4 vous apporte
- 7.4 : Propriétés typées : les propriétés de classe acceptent une déclaration de type appliquée à chaque affectation.source
- 7.4 : Fonctions fléchées (fn) avec liaison implicite du scope par valeur.source
- 7.4 : Covariance limitée des types de retour et contravariance des types d'arguments, avec autoloading.source
- 7.4 : Opérateur d'affectation null coalescent (??=), décompression dans les tableaux (...), séparateur numérique 1_000.source
- 7.4 : Préchargement du code dans OPcache (preloading), extension FFI et WeakReference.source
Combien coûte cette migration ?
À partir de 1 500 € HT
Pour une migration Bear Upgrade livrée en Merge Requests, Rector tourne d’abord en dry-run sur les transformations mécaniques, Claude Code traite les cas que Rector ne couvre pas, puis un développeur senior relit chaque Merge Request. Votre équipe veut reprendre la main ensuite ? Pensez à la formation Claude Code sur vos projets. Exemple concret : la migration Symfony d’un e-commerce bordelais, et après la migration, la maintenance des versions garde le socle à jour.
Sur une base aussi ancienne, l’audit d’abord : Bear Scan mesure tests, dépendances abandonnées et code mort avant de fixer le prix de la migration.
Questions fréquentes
À traiter en premier : Accéder à null, bool, int, float ou resource comme à un tableau ($null['key']) génère désormais une notice (PHP 7.4) ; fn devient un mot réservé : il ne peut plus nommer une fonction ou une classe (reste possible pour une méthode ou une constante de classe) (PHP 7.4).
PHP 7.3 ne reçoit plus de correctifs de sécurité depuis décembre 2021.
En grande partie : le set LevelSetList::UP_TO_PHP_74 applique en une passe les transformations mécaniques jusqu’à PHP 7.4. Restent les changements de comportement (valeurs de retour, erreurs devenues fatales, extensions retirées), à couvrir par les tests et une relecture humaine.
Une migration Bear Upgrade démarre à 1 500 € HT ; le prix ferme est fixé au cadrage, après lecture du code et des dépendances.