Aller au contenu
EdgeServers
Blog

Upgrade vers PHP 8.3 en production — le playbook de migration pour les flottes Laravel, Symfony et WordPress

26 mai 2026 · 1 min de lecture · par Sudhanshu K.

PHP 8.3 est la cible « ennuyeuse, rapide, fiable » actuelle pour la plupart des flottes prod. La plupart des apps passent proprement depuis 8.1 ou 8.2. Un petit mais tranchant ensemble de deprecations est ce qui attrape les équipes — propriétés dynamiques sans #[AllowDynamicProperties], le changement de signature de assert() et les règles d'amend readonly — qui tous throw à runtime, pas au build.

Voici le playbook étalé que nous faisons tourner sur les flottes clients pour les faire passer en sécurité.

Le rollout étalé

# .github/workflows/php-version-matrix.yml
strategy:
  matrix:
    php-version: ['8.1', '8.2', '8.3']
steps:
  - uses: shivammathur/setup-php@v2
    with: { php-version: ${{ matrix.php-version }} }
  - run: composer install --prefer-dist
  - run: vendor/bin/phpunit
  - run: vendor/bin/phpstan analyse --error-format=github

La CI tourne contre trois versions simultanément pendant au moins deux semaines avant l'upgrade. PHPStan au niveau 8 + une couche de reporting d'erreurs de deprecation fait remonter 90 % des cassures avant que le trafic ne les voie.

L'article complet couvre :

  • La liste des deprecations 8.1 → 8.3 classée par fréquence dans des codebases réelles
  • Rector — l'outil d'auto-fix qui fait la plupart du travail mécanique
  • Le pattern error_reporting = E_ALL + log-puis-strict pour attraper les deprecations en prod
  • Pièges spécifiques aux frameworks (sérialiseur de queues Laravel, Symfony 6.4 LTS, compat WordPress core)
  • Le pattern blue/green deploy pour le vrai cutover
  • Plan de rollback : garder un container 8.2 dans le registry taggé previous

Nous utilisons ce playbook sur chaque upgrade de flotte PHP que nous menons.

Article complet disponible

Lire l'article complet