Où en est le support de PHP 8.1 et 8.2 ?
| Critère | PHP 8.1 | PHP 8.2 |
|---|---|---|
| Sortie | novembre 2021 | décembre 2022 |
| Fin des correctifs de bugs | novembre 2023 | décembre 2024 |
| Fin des correctifs de sécurité | décembre 2025 | décembre 2026 |
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 8.2
- BloquantLa création de propriétés dynamiques est dépréciée, sauf avec #[\AllowDynamicProperties] ; stdClass reste autorisée. Impact fort sur les entités et DTO hérités.source
- À traiterL'interpolation "${var}" et "${expr}" est dépréciée : utiliser "$var" ou "{$var}".source
- À traiterCallables relatifs ("self::method", ["parent", "method"]) dépréciés quand $callable() ne les accepte pas.source
- À traiterutf8_encode() et utf8_decode() sont dépréciées ; les encodages mbstring HTML-ENTITIES, Base64, QPrint et Uuencode aussi.source
- Mineurglob() renvoie un tableau vide, et non false, si open_basedir restreint tous les chemins ; FilesystemIterator::SKIP_DOTS n'est plus forcé.source
Extensions
- Nouvelle extension Random ; ODBC, PDO_ODBC, OCI8, cURL et OpenSSL reçoivent des ajustements.source
- Les méthodes DateTime::createFromImmutable() et DateTimeImmutable::createFromMutable() ont un type de retour tentatif static.source
Pièges rencontrés en migration
- Les dépréciations de propriétés dynamiques apparaissent à l'exécution, pas à la compilation : couvrir les chemins rares (cron, hydratation, tests) avant la mise en production.source
- Plusieurs bibliothèques anciennes encodent en UTF-8 via utf8_encode() : un grep dans vendor/ évite des centaines de dépréciations.source
Rector : LevelSetList::UP_TO_PHP_82
Guide officiel de migration vers PHP 8.2
À lire sur le blog : PHP 8.6 arrive le 19 novembre, PHP 8.2 expire le 31 décembre
Ce que PHP 8.2 vous apporte
- 8.2 : Classes readonly : toutes les propriétés déclarées sont en lecture seule.source
- 8.2 : Types null, false et true autonomes, et types DNF qui combinent intersection et union.source
- 8.2 : Attribut #[\SensitiveParameter] pour masquer les données sensibles dans les backtraces.source
- 8.2 : Constantes dans les traits et énumérations utilisables dans les expressions constantes.source
- 8.2 : Nouvelle extension Random qui regroupe les générateurs et introduit des RNG améliorés.source
Combien coûte cette migration ?
À partir de 1 500 € HT
Pour faire migrer votre application avec 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.
Questions fréquentes
À traiter en premier : La création de propriétés dynamiques est dépréciée, sauf avec #[\AllowDynamicProperties] ; stdClass reste autorisée. Impact fort sur les entités et DTO hérités (PHP 8.2) ; L'interpolation "${var}" et "${expr}" est dépréciée : utiliser "$var" ou "{$var}" (PHP 8.2).
PHP 8.1 ne reçoit plus de correctifs de sécurité depuis décembre 2025.
En grande partie : le set LevelSetList::UP_TO_PHP_82 applique en une passe les transformations mécaniques jusqu’à PHP 8.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. Pour une application Symfony, le calculateur pré-rempli avec PHP 8.1 → 8.2 donne l’estimation de votre projet ; le prix ferme est fixé au cadrage.