Zum Inhalt springen
EdgeServers
Blog

Upgrade auf PHP 8.3 in Produktion — das Migrations-Playbook für Laravel-, Symfony- und WordPress-Flotten

26. Mai 2026 · 1 Min. Lesezeit · von Sudhanshu K.

PHP 8.3 ist das aktuelle „langweilig, schnell, zuverlässig"-Ziel für die meisten Produktionsflotten. Die meisten Apps wechseln sauber von 8.1 oder 8.2. Ein kleiner, aber scharfer Satz an Deprecations ist das, was Teams einfängt — dynamische Properties ohne #[AllowDynamicProperties], der assert()-Signaturwechsel und die Readonly-Amend-Regeln — alle werfen zur Laufzeit, nicht beim Build.

Dies ist das gestaffelte Playbook, das wir auf Kunden-Flotten fahren, um sie sicher umzustellen.

Der gestaffelte Rollout

# .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

CI läuft mindestens zwei Wochen lang gegen drei Versionen gleichzeitig vor dem Upgrade. PHPStan auf Level 8 + eine Deprecation-Error-Reporting-Schicht fördert 90 % der Brüche zutage, bevor Traffic sie sieht.

Der vollständige Beitrag behandelt:

  • Die 8.1 → 8.3 Deprecation-Liste nach Häufigkeit in echten Codebases sortiert
  • Rector — das Auto-Fix-Tool, das den Großteil der mechanischen Arbeit macht
  • Das error_reporting = E_ALL + Log-dann-Strict-Pattern, um Deprecations in Produktion einzufangen
  • Framework-spezifische Stolperfallen (Laravel-Queue-Serializer, Symfony 6.4 LTS, WordPress-Core-Kompat)
  • Das Blue/Green-Deploy-Pattern für den eigentlichen Cutover
  • Rollback-Plan: einen 8.2-Container im Registry mit previous-Tag halten

Wir nutzen dieses Playbook bei jedem PHP-Flotten-Upgrade, das wir durchführen.

Vollständiger Artikel verfügbar

Vollständigen Artikel lesen