Aller au contenu principal

Migration PHP · 7.0 → 7.1

Migrer de PHP 7.0 à PHP 7.1

PHP 7.0 ne reçoit plus de correctifs de sécurité depuis janvier 2019 ; PHP 7.1 ne reçoit plus de correctifs de sécurité depuis décembre 2019. Une seule version à franchir, documentée par le guide de migration 7.1 du manuel PHP. 1 rupture à fort impact sur le parcours. Première rupture à traiter : appeler une fonction utilisateur avec trop peu d'arguments lève désormais ArgumentCountError (Error) au lieu d'un simple avertissement.

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

Support de PHP 7.0 et 7.1
CritèrePHP 7.0PHP 7.1
Sortiedécembre 2015décembre 2016
Fin des correctifs de bugsjanvier 2018décembre 2018
Fin des correctifs de sécuritéjanvier 2019décembre 2019

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

Les ruptures à traiter en premier

  1. Bloquant · 7.1Appeler une fonction utilisateur avec trop peu d'arguments lève désormais ArgumentCountError (Error) au lieu d'un simple avertissement.source
  2. À traiter · 7.1Opérateur [] vide sur une chaîne ($str[] = $x) : erreur fatale au lieu d'une conversion silencieuse en tableau.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, un audit Bear Scan avant de migrer chiffre la dette qui ralentira chaque étape.

Passer à PHP 7.1

  • BloquantAppeler une fonction utilisateur avec trop peu d'arguments lève désormais ArgumentCountError (Error) au lieu d'un simple avertissement.source
  • À traiterOpérateur [] vide sur une chaîne ($str[] = $x) : erreur fatale au lieu d'une conversion silencieuse en tableau.source
  • À traiterCorrection de l'algorithme mt_rand() : les séquences issues d'un seed fixe changent, sauf à passer MT_RAND_PHP à mt_srand() ; rand() devient un alias de mt_rand().source
  • MineurLes chaînes numériques en notation scientifique sont désormais converties comme telles ; les appels dynamiques aux fonctions d'introspection de portée sont interdits.source
  • MineurLe constructeur DateTime intègre désormais les microsecondes, ce qui peut changer des comparaisons de dates créées avec 'now'.source

Extensions

  • ext/mcrypt est dépréciée (abandonware) au profit d'OpenSSL ; elle sera sortie du cœur vers PECL en 7.2.source
  • L'option eval de mb_ereg_replace() et mb_eregi_replace() est dépréciée.source

Pièges rencontrés en migration

  • Un code qui rejouait des tirages mt_rand() à partir d'un seed fixe (tests, jeux de données) produit des valeurs différentes après la montée de version.source

Rector : LevelSetList::UP_TO_PHP_71

Guide officiel de migration vers PHP 7.1

Ce que PHP 7.1 vous apporte

  • 7.1 : Types nullables (?int) et type de retour void.source
  • 7.1 : Visibilité des constantes de classe (private/protected) et pseudo-type iterable.source
  • 7.1 : Capture multiple d'exceptions (catch (A | B $e)) et clés dans list() ; décompression symétrique de tableaux avec [].source
  • 7.1 : Closure::fromCallable() et offsets négatifs de chaînes ; support AEAD dans ext/openssl.source

Combien coûte cette migration ?

À partir de 1 500 € HT

Pour la migration accompagnée 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 à 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

Pour aller plus loin

Sources

Votre migration PHP 7.0 → 7.1, 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.