Où en est le support de PHP 7.0 et 7.1 ?
| Critère | PHP 7.0 | PHP 7.1 |
|---|---|---|
| Sortie | décembre 2015 | décembre 2016 |
| Fin des correctifs de bugs | janvier 2018 | décembre 2018 |
| Fin des correctifs de sécurité | janvier 2019 | décembre 2019 |
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.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
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
À traiter en premier : Appeler une fonction utilisateur avec trop peu d'arguments lève désormais ArgumentCountError (Error) au lieu d'un simple avertissement (PHP 7.1) ; Opérateur [] vide sur une chaîne ($str[] = $x) : erreur fatale au lieu d'une conversion silencieuse en tableau (PHP 7.1).
PHP 7.0 ne reçoit plus de correctifs de sécurité depuis janvier 2019.
En grande partie : le set LevelSetList::UP_TO_PHP_71 applique en une passe les transformations mécaniques jusqu’à PHP 7.1. 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.