# PHP Upgrade Kosten: Aufwand schätzen, bevor 8.2 ausläuft

> Was ein PHP-Upgrade kostet, hängt vor allem an Ausgangsversion, Framework-Stand, Testabdeckung und veralteten Abhängigkeiten. Im Rechenbeispiel dieses Beitrags braucht eine mittelgroße Laravel-Anwendung für den Weg von PHP 8.1 auf 8.4 rund 28 Personentage, bei 720 Euro Tagessatz etwa 20.000 Euro. Ohne Tests wird es deutlich teurer.

- URL: https://php-entwickler-gesucht.de/gehalt-und-kosten/php-upgrade-kosten/
- Sprache: de
- Aktualisiert: 2026-10-19
- Herausgeber: PHP-Entwickler gesucht (OnlineBuilders LLC, https://onlinebuilders.biz)

Am 31. Dezember 2026 endet der Sicherheitssupport für PHP 8.2. PHP 8.1 bekommt schon seit Anfang 2026 keine Patches mehr. Wer eine dieser Versionen produktiv betreibt, hat also ein Datum im Kalender, ob er will oder nicht.

Und das betrifft viele. Laut W3Techs liefen im Oktober 2026 noch 27 Prozent der PHP-Websites auf PHP 7, knapp 8 Prozent sogar auf PHP 5. Der Perforce PHP Landscape Report 2026 meldet, dass 76 Prozent der befragten PHP-Nutzer ein Upgrade oder eine Migration planen.

## Welche Versionen wann auslaufen

PHP-Versionen bekommen zwei Jahre aktive Unterstützung und danach zwei Jahre nur Sicherheitsupdates. Die offiziellen Daten stehen auf [php.net](https://www.php.net/supported-versions.php).

**Support-Ende der PHP-Versionen**

- **31. Dez. 2025:** PHP 8.1: keine Sicherheitsupdates mehr
- **31. Dez. 2026:** PHP 8.2: Ende der Sicherheitsupdates; PHP 8.4: Ende der aktiven Unterstützung
- **31. Dez. 2027:** PHP 8.3: Ende der Sicherheitsupdates
- **31. Dez. 2028:** PHP 8.4: Ende der Sicherheitsupdates
- **31. Dez. 2029:** PHP 8.5: Ende der Sicherheitsupdates

Quelle: php.net, Supported Versions (Stand Oktober 2026)

Mein Rat: Spring nicht nur bis zur nächsten Version, die gerade noch unterstützt wird. Wer heute von 8.1 auf 8.3 geht, steht Ende 2027 wieder vor demselben Problem. PHP 8.4 oder 8.5 kaufen dir zwei Jahre mehr Ruhe für einen ähnlichen Aufwand.

## Die fünf Faktoren, die den Preis bestimmen

Kein seriöser Anbieter nennt einen Festpreis, ohne den Code gesehen zu haben. Der Aufwand hängt an wenigen, gut prüfbaren Faktoren.

Erstens die Ausgangsversion. Von 8.3 auf 8.4 ändert sich wenig. Von 7.4 auf 8.x ändert sich viel, etwa beim Vergleich von Zahlen mit Strings und bei strengeren Fehlern für bisher geduldete Muster.

Zweitens das Framework. Frameworks unterstützen nur bestimmte PHP-Versionen. Laravel 10 etwa läuft laut Release Notes nur bis PHP 8.3, für PHP 8.4 brauchst du mindestens Laravel 11, für 8.5 Laravel 12. Ein PHP-Upgrade zieht also oft ein oder zwei Framework-Upgrades nach sich. Wie sich Laravel und Symfony bei Support-Zyklen unterscheiden, steht unter [Laravel oder Symfony](https://php-entwickler-gesucht.de/bewerber-pruefen/laravel-oder-symfony/).

Drittens die Tests. Mit guter Testabdeckung zeigt ein Testlauf nach jedem Schritt, was kaputtgegangen ist. Ohne Tests klickt jemand stundenlang durch die Anwendung und hofft. Laut JetBrains State of PHP 2025 schreiben 32 Prozent der PHP-Entwickler gar keine Tests. In solchen Projekten ist das Nachrüsten von Tests der größte Einzelposten.

Viertens die Abhängigkeiten. Ein einziges verwaistes Paket, das niemand mehr pflegt, kann ein Upgrade um Wochen verzögern. Dann musst du es ersetzen oder selbst weiterpflegen.

Fünftens Eigenbau. Anwendungen ohne Framework, mit eigenem Template-System und eigener Datenbankschicht, sind am schwersten zu schätzen. Hier helfen Werkzeuge weniger, weil sie die Muster nicht kennen.

## Ein Rechenbeispiel

Für eine Größenordnung hier ein Beispiel mit angenommenen Aufwänden. Es beschreibt eine mittelgroße Laravel-Anwendung auf PHP 8.1 und Laravel 10, mit einigen Tests, aber Lücken bei kritischen Abläufen. Ziel: PHP 8.4 und Laravel 12.

**Beispielrechnung: PHP 8.1 und Laravel 10 auf PHP 8.4 und Laravel 12**

- Bestandsaufnahme und Plan: 3 Tage
- Tests für kritische Abläufe ergänzen: 8 Tage
- PHP 8.1 auf 8.3, danach Laravel 11 und 12: 7 Tage
- PHP 8.4 mit Rector und Nacharbeit: 4 Tage
- Pakete aktualisieren oder ersetzen: 3 Tage
- Staging-Test, Rollout, Nachsorge: 3 Tage
- Summe: 28 Tage × 720 €: 20.160 €
- **Netto, ohne Puffer: rund 20.000 €**

Aufwände sind Annahmen für dieses Beispiel, keine Marktdaten. Tagessatz nach freelancermap-Median 2026 (90 € × 8 h). Dein Projekt kann halb oder doppelt so viel kosten.

Die Reihenfolge in der dritten Zeile ist kein Zufall. Weil Laravel 10 kein PHP 8.4 unterstützt und Laravel 12 kein PHP 8.1, muss man in Stufen gehen: erst PHP so weit anheben, wie das alte Framework erlaubt, dann das Framework, dann wieder PHP.

Ein Puffer von 20 bis 30 Prozent ist bei Upgrades angebracht. Fast jedes Projekt hat ein Paket oder eine Stelle im Code, die mehr Arbeit macht als gedacht. Wie Stundensätze zustande kommen, erklärt der Beitrag zum [Stundensatz von PHP-Freelancern](https://php-entwickler-gesucht.de/gehalt-und-kosten/php-freelancer-stundensatz/).

## Typische Stolpersteine zwischen 8.0 und 8.5

Jede Version bringt Änderungen, die in älterem Code Warnungen oder Fehler auslösen. Die meisten sind klein, aber sie summieren sich über Hunderte Dateien. Ein Überblick über die häufigsten Fälle:

| Version | Änderung | Typische Folge in altem Code |
|---|---|---|
| 8.0 | Vergleich Zahl mit nicht-numerischem String geändert | `0 == 'abc'` ist jetzt `false`, Bedingungen kippen |
| 8.1 | `null` an nicht-nullbare Parameter interner Funktionen ist deprecated | Flut von Hinweisen, etwa bei `strlen(null)` |
| 8.2 | dynamische Eigenschaften deprecated | Klassen, die nicht deklarierte Properties setzen |
| 8.4 | implizit nullbare Parametertypen deprecated | `Logger $logger = null` muss `?Logger` werden |
| 8.5 | Backtick-Operator und Casts wie `(integer)` deprecated | alte Hilfsskripte, Legacy-Code |

Die gute Nachricht: Gerade diese mechanischen Fälle erledigt Rector zuverlässig. Ein Beispiel für 8.4:

```php
// deprecated ab PHP 8.4
function findUser(int $id, Logger $logger = null): ?User {}

// korrekt
function findUser(int $id, ?Logger $logger = null): ?User {}
```

Schwieriger sind die Fälle, die kein Werkzeug sieht. Der geänderte Vergleich in PHP 8.0 etwa erzeugt keine Warnung. Eine Bedingung liefert einfach still ein anderes Ergebnis als vorher. Genau dafür brauchst du Tests, die das fachliche Verhalten prüfen, nicht nur, ob eine Seite lädt.

Die vollständigen Listen stehen in den Migrationsleitfäden des PHP-Handbuchs. Für ein Upgrade über mehrere Versionen lohnt es, sie nacheinander durchzugehen, statt nur die Zielversion zu lesen.

## So läuft ein Upgrade ab

Der Ablauf ist bei fast allen Projekten gleich, nur die Dauer der Schritte schwankt.

**Ablauf eines PHP-Upgrades**

1. **Bestandsaufnahme** Versionen, Pakete, Testabdeckung und Eigenbau-Anteil erfassen.
2. **Sicherheitsnetz** Tests für die wichtigsten Abläufe schreiben, falls sie fehlen.
3. **Automatisieren** Rector und PHPStan einrichten, Änderungen in kleinen Schritten einspielen.
4. **Framework** Major-Versionen nacheinander anheben, jeweils mit offiziellem Upgrade-Guide.
5. **Staging** Neue PHP-Version auf einer Kopie der Produktion testen.
6. **Rollout** Umstellen mit Rückweg, danach Fehlerlogs eine Woche eng beobachten.

Für die Bestandsaufnahme reichen ein paar Befehle. Sie zeigen, welche Pakete veraltet sind und was einem Upgrade im Weg steht:

```bash
composer outdated --direct
composer why-not php 8.4
vendor/bin/phpstan analyse --level=5 app
vendor/bin/rector process --dry-run
```

`composer why-not` listet die Pakete auf, die eine bestimmte PHP-Version blockieren. Das ist meist die wichtigste Zeile der ganzen Analyse. Rector braucht eine kleine Konfigurationsdatei:

```php
<?php

// rector.php
use Rector\Config\RectorConfig;

return RectorConfig::configure()
    ->withPaths([__DIR__ . '/app', __DIR__ . '/tests'])
    ->withPhpSets(php84: true)
    ->withPreparedSets(deadCode: true, typeDeclarations: true);
```

Mit `--dry-run` zeigt Rector nur an, was es ändern würde. So sieht dein Team vorab, wie viel mechanische Arbeit das Werkzeug abnimmt. In gut strukturierten Projekten ist das ein großer Teil.

## Was es kostet, nicht zu upgraden

Die Rechnung hat eine zweite Seite. Eine PHP-Version ohne Sicherheitsupdates bleibt offen für Lücken, die nach dem Support-Ende bekannt werden. Die DSGVO verlangt in Art. 32 geeignete technische Maßnahmen zum Schutz personenbezogener Daten. Eine Laufzeitumgebung ohne Patches ist schwer als geeignet zu begründen.

Dazu kommt der schleichende Teil. Neue Pakete setzen neuere PHP-Versionen voraus, Entwickler arbeiten ungern mit veralteten Werkzeugen, und jedes Jahr Aufschub macht den nächsten Sprung größer. Bei der Personalsuche merkst du das direkt: Eine Stelle mit „PHP 7.4, Upgrade irgendwann“ zieht andere Bewerber an als eine mit „PHP 8.4, Laravel 12“. Was Kandidaten erwarten, beschreibt der Beitrag [Laravel-Entwickler finden](https://php-entwickler-gesucht.de/entwickler-suchen/laravel-entwickler-finden/).

## Wer das Upgrade machen sollte

Hast du eine erfahrene Person im Team, die schon Upgrades verantwortet hat, ist das die beste Lösung. Sie kennt den Code und die Fallen. Woran du so jemanden erkennst, steht im Beitrag [Senior-PHP-Entwickler erkennen](https://php-entwickler-gesucht.de/bewerber-pruefen/senior-php-entwickler/).

Fehlt diese Person, ist ein spezialisierter Freelancer für ein klar abgegrenztes Upgrade eine gute Wahl. Ein Festpreis nach einer bezahlten Bestandsaufnahme schützt beide Seiten. Tipps zur Auswahl stehen unter [PHP-Freelancer finden](https://php-entwickler-gesucht.de/entwickler-suchen/php-freelancer-finden/).

Soll die Anwendung danach auch dauerhaft betreut werden, inklusive Hosting und künftiger Upgrades, kann ein Studio wie [OnlineBuilders](https://onlinebuilders.biz/solutions/software-development) Entwicklung und Betrieb zusammen übernehmen. Dann wird aus dem einmaligen Projekt ein planbarer Prozess.

Führ als Nächstes `composer why-not php 8.4` in deinem Projekt aus. Die Liste, die dabei herauskommt, ist die Grundlage für jede seriöse Schätzung, egal ob du intern planst oder ein Angebot einholst.

## Häufige Fragen

### Wie lange dauert ein PHP-Upgrade?

Ein Sprung um eine Nebenversion, etwa von 8.3 auf 8.4, ist bei gepflegtem Code oft in wenigen Tagen erledigt. Von PHP 7 auf 8.x mit Framework-Wechsel können es Monate werden. Eine Bestandsaufnahme von zwei bis drei Tagen liefert eine belastbare Schätzung.

### Kann ich einfach die PHP-Version beim Hoster umstellen?

Nur wenn du vorher getestet hast. Zwischen den Versionen fallen Funktionen weg und Warnungen werden zu Fehlern. Stell die neue Version zuerst auf einer Staging-Umgebung um und lass die Tests laufen.

### Lohnt sich ein Upgrade, wenn die Anwendung bald ersetzt wird?

Wenn die Ablösung in weniger als einem Jahr realistisch ist und die Anwendung nicht öffentlich erreichbar ist, kann man abwägen. Läuft sie im Internet mit Kundendaten, ist eine Version ohne Sicherheitsupdates kaum vertretbar. Ablösungen dauern außerdem fast immer länger als geplant.

### Was ist Rector?

Rector ist ein Open-Source-Werkzeug, das PHP-Code automatisch umschreibt, etwa für eine neue PHP-Version oder ein Framework-Upgrade. Es ersetzt keine Tests, nimmt aber viel mechanische Arbeit ab. Laut JetBrains nutzen es bislang rund 10 Prozent der PHP-Entwickler.

Foto: Derrick Coetzee from Berkeley, CA, USA, CC0 (https://commons.wikimedia.org/wiki/File:Technician_with_laptop_working_on_server_rack_at_NERSC.jpg)