Aller au contenu principal

Migration PHP · 7.1 → 7.2

Migrer de PHP 7.1 à PHP 7.2

PHP 7.1 ne reçoit plus de correctifs de sécurité depuis décembre 2019 ; PHP 7.2 ne reçoit plus de correctifs de sécurité depuis novembre 2020. Une seule version à franchir, documentée par le guide de migration 7.2 du manuel PHP. 3 ruptures à fort impact sur le parcours. Première rupture à traiter : 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.

Où en est le support de PHP 7.1 et 7.2 ?

Support de PHP 7.1 et 7.2
CritèrePHP 7.1PHP 7.2
Sortiedécembre 2016novembre 2017
Fin des correctifs de bugsdécembre 2018novembre 2019
Fin des correctifs de sécuritédécembre 2019novembre 2020

Statuts vérifiés le 08/11/2026 sur les pages officielles de version.

Les ruptures à traiter en premier

  1. Bloquant · 7.2count() 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
  2. Bloquant · 7.2each() est dépréciée : à remplacer par foreach ou ArrayIterator.source

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

Guide officiel de migration vers PHP 7.2

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

Pour aller plus loin

Sources

Votre migration PHP 7.1 → 7.2, livrée en Merge Requests

CI au vert garantie 7 jours après le merge. Un appel de cadrage suffit pour fixer le périmètre, le prix et le délai.