Où en est le support de PHP 7.1 et 7.2 ?
| Critère | PHP 7.1 | PHP 7.2 |
|---|---|---|
| Sortie | décembre 2016 | novembre 2017 |
| Fin des correctifs de bugs | décembre 2018 | novembre 2019 |
| Fin des correctifs de sécurité | décembre 2019 | novembre 2020 |
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, mesurer la dette avec un Bear Scan chiffre la dette qui ralentira chaque étape.
Passer à PHP 7.2
- Bloquantcount() sur une valeur non dénombrable (null, scalaire, objet non Countable) émet un E_WARNING ; très fréquent dans le code hérité de PHP 5.source
- Bloquanteach() est dépréciée : à remplacer par foreach ou ArrayIterator.source
- Bloquantcreate_function() et __autoload() sont dépréciées ; privilégier les fonctions anonymes et spl_autoload_register().source
- À traiterparse_str() sans second argument est dépréciée, car elle peuplait la table des symboles locale.source
- À traiterLes constantes non définies passent de E_NOTICE à E_WARNING (Error prévu en PHP 8) ; get_class(null) émet un avertissement.source
Extensions
- mcrypt quitte le cœur pour PECL ; OpenSSL ou Sodium doivent la remplacer.source
- Les fonctions de ext/hash passent des ressources aux objets, et les valeurs par défaut SSL/TLS sont durcies.source
Pièges rencontrés en migration
- Les avertissements count() et de constantes indéfinies inondent les logs de production sur du code legacy, sans casser l'exécution ; à traiter avant de passer en 8.x.source
Rector : LevelSetList::UP_TO_PHP_72
Ce que PHP 7.2 vous apporte
- 7.2 : Nouveau type de paramètre et de retour object.source
- 7.2 : Sodium devient une extension du cœur et le hachage de mots de passe Argon2 (PASSWORD_ARGON2I) est disponible.source
- 7.2 : Élargissement des types de paramètres (parameter type widening) et surcharge de méthodes abstraites par une méthode abstraite.source
- 7.2 : Chargement des extensions par leur nom dans php.ini et virgule finale autorisée dans les namespaces groupés.source
Combien coûte cette migration ?
À partir de 1 500 € HT
Pour confier la migration à Bear Upgrade, 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 à apprendre à piloter Claude Code sur votre code. 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 : count() sur une valeur non dénombrable (null, scalaire, objet non Countable) émet un E_WARNING ; très fréquent dans le code hérité de PHP 5 (PHP 7.2) ; each() est dépréciée : à remplacer par foreach ou ArrayIterator (PHP 7.2).
PHP 7.1 ne reçoit plus de correctifs de sécurité depuis décembre 2019.
En grande partie : le set LevelSetList::UP_TO_PHP_72 applique en une passe les transformations mécaniques jusqu’à PHP 7.2. 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.