Eliminierung technischer Schulden mit PHPStan, Rector PHP und PHPUnit. Über 20 Jahre Praxiserfahrung in skalierbaren Backends.
- Erstellt:
- Aktualisiert:
- Autor:
- Roland Golla
PHP 8 alle Versionen und Features im Überblick
PHP 8.6 (geplant für 19. November 2026): Partial Function Application mit ? Platzhaltern, Time\Duration Klasse, clamp(), Readonly Property Defaults, #[\Override] für Konstanten, __debugInfo() auf Enums, Stream Errors als Exceptions, native Polling API, SortDirection Enum, URI Builder, sichere Session Defaults.
PHP 8.5 (November 2025): Pipe Operator (|>), URI Extension (RFC 3986 und WHATWG), Clone with für Readonly Classes, #[\NoDiscard] Attribut, array_first() und array_last(), Fatal Error Backtraces, Persistent cURL Share Handles, Closures in Constant Expressions.
PHP 8.4 (November 2024): Property Hooks, Asymmetric Visibility (public private(set)), #[\Deprecated] Attribut, new ohne Klammern, Lazy Objects (Ghost und Proxy), array_find(), array_any(), array_all(), HTML5 DOM Extension, PDO Subclasses, BcMath\Number Objekt, neuer JIT auf IR Framework Basis.
PHP 8.3 (November 2023): Typed Class Constants, #[\Override] Attribut, json_validate(), Deep Cloning von Readonly Properties, Dynamic Class Constant Fetch (Foo::{$name}), Randomizer::getBytesFromString(), Randomizer::getFloat().
PHP 8.2 (Dezember 2022): Readonly Classes, DNF Types (Disjunctive Normal Form), null, false und true als eigenständige Typen, Random Extension mit austauschbaren Engines, #[\SensitiveParameter] Attribut, Deprecated Dynamic Properties, Constants in Traits.
PHP 8.1 (November 2021): Enums (Pure und Backed), Fibers für kooperative Nebenläufigkeit, Readonly Properties, First-class Callable Syntax (strlen(...)), Intersection Types, never Return Type, final Class Constants, array_is_list(), Explicit Octal Notation.
PHP 8.0 (November 2020): Named Arguments, Union Types, Match Expression, Constructor Property Promotion, Attributes, Nullsafe Operator (?->), JIT Compiler (Tracing JIT), str_contains(), str_starts_with(), str_ends_with(), WeakMap, Saner String to Number Comparisons.
Was ist PHP 8 und warum ist ein Upgrade wichtig
PHP 8 ist die aktuelle Hauptversion der serverseitigen Programmiersprache PHP und umfasst die Releases 8.0 bis 8.5, PHP 8.6 folgt im November 2026. Seit November 2020 hat jede neue Minor Version bedeutende Sprachfeatures eingeführt, die Typsicherheit, Lesbarkeit und Performance von PHP Anwendungen spürbar verbessern. Für Unternehmen bedeutet ein regelmäßiges PHP Upgrade nicht nur Zugang zu modernen Features, sondern auch Schutz vor Sicherheitslücken und Kompatibilität mit aktuellen Frameworks wie Symfony 7, Laravel 11 und Sulu CMS.
Support Zeiträume der PHP 8 Versionen (Stand April 2026, Quelle: php.net)
- PHP 8.0 (Release November 2020): End of Life seit November 2023
- PHP 8.1 (Release November 2021): End of Life seit Dezember 2025
- PHP 8.2 (Release Dezember 2022): Security Support bis Dezember 2026
- PHP 8.3 (Release November 2023): Security Support bis Dezember 2027
- PHP 8.4 (Release November 2024): Active Support bis Dezember 2026
- PHP 8.5 (Release November 2025): Active Support bis Dezember 2027, aktuellste Version
- PHP 8.6 (Release geplant für 19. November 2026 laut PHP Wiki)
Seit März 2024 wurde der PHP Release Zyklus auf vier Jahre verlängert: zwei Jahre Active Support mit Bugfixes und zwei Jahre Security Updates. Wer noch auf PHP 8.0 oder 8.1 läuft, erhält keine Sicherheitspatches mehr und sollte dringend upgraden. Rector PHP automatisiert den Migrationsprozess und macht Upgrades über mehrere Versionen hinweg sicher und effizient.
PHP 8 mit NCA: Schnelle Hilfe vom Experten
Bei Never Code Alone sitzen keine Berater mit Präsentationsfolien. Unsere PHP Consultants sind aktive Entwickler, die täglich mit Rector PHP, PHPStan und PHPUnit arbeiten und aus über 20 Jahren Projektpraxis wissen, wo bei einem PHP Upgrade die echten Fallstricke liegen. Als Open Source Aktivisten kennen wir die Sprachfeatures von PHP 8.0 bis 8.5 nicht aus Changelogs, sondern aus der täglichen Arbeit an Symfony und Sulu Projekten, und testen PHP 8.6 bereits mit den Release Candidates.
Wenn ihr von einer veralteten PHP Version auf 8.5 oder 8.6 migrieren wollt, übernimmt NCA die komplette Umstellung. Über unser PHP Consulting steigen wir direkt in eure Codebasis ein: PHP Updates und Migrationen automatisieren wir mit Rector PHP, sichern jeden Schritt mit PHPStan auf Level 8 ab und räumen gewachsenen Legacy Code im Symfony Refactoring auf. Teams, die das Know-how selbst aufbauen wollen, bringen wir im RuhrRefactoring Workshop in Live Coding Sessions auf den aktuellen Stand.
Gesetzliche Konformität & Inklusion. Optimierung von Performance und Conversion durch radikal nutzerzentriertes, universelles Design.
Skalierbare KI-Systeme mit echtem Code Ownership. CI/CD, Backup-Strategien und Infrastruktur, die mit deinem Team wächst.
PHP 8 Versionen im Vergleich als Tabelle
Alle PHP 8 Releases auf einen Blick, mit Release Datum, Support Status (Quelle: php.net, für PHP 8.6 das PHP Wiki) und den wichtigsten Features.
PHP 8.6: Partial Function Application, Time Duration und clamp (November 2026)
PHP 8.6 erscheint laut offiziellem Zeitplan im PHP Wiki am 19. November 2026. Der Feature Freeze ist vorbei, der Funktionsumfang steht fest. Das wichtigste Feature ist Partial Function Application: Ein Funktionsaufruf mit ? als Platzhalter liefert eine typisierte Closure. Zusammen mit dem Pipe Operator aus PHP 8.5 verschwinden damit die meisten kleinen Arrow Functions aus Callbacks und Pipes.
Die wichtigsten Features von PHP 8.6:
- Partial Function Application: Platzhalter
?für ein Argument,...für alle restlichen und benannte Platzhalter. Rechts vom Pipe Operator optimiert der Compiler die Closure komplett weg. - Time\Duration: Eine eigene Klasse für Zeitdauern mit Nanosekunden Genauigkeit, gedacht für Timeouts, Cache TTL und Retry Delays.
- clamp(): Hält einen Wert zwischen einer Unter und einer Obergrenze, ohne verschachtelte
min()undmax()Aufrufe. - Readonly Property Defaults: Readonly Properties dürfen jetzt direkt einen Default Wert haben.
- #[\Override] für Konstanten und __debugInfo() auf Enums.
- Stream Errors: Dateifehler können per Stream Context als
StreamExceptiongeworfen werden. - Polling API: Native Basis mit epoll und kqueue für Event Loops und asynchrones PHP.
- Sichere Session Defaults: Strict Mode, HttpOnly und SameSite Lax sind ab Werk aktiv. Das kann bestehende Anwendungen brechen.
Dazu kommen viele Deprecations, etwa is_integer(), is_double() und spl_object_hash(). Die komplette Liste steht in der UPGRADING Datei im PHP Repository. Codebeispiele, Breaking Changes und eine Update Checkliste zeigen wir im Blogartikel PHP 8.6 neue Features erklärt.
$slug = ' PHP 8.6 Release Notes '
|> trim(...)
|> strtolower(...)
|> str_replace(' ', '-', ?);
var_dump($slug);
// string(21) "php-8.6-release-notes"
PHP 8.5: Pipe Operator, URI Extension und Clone with (November 2025)
PHP 8.5 ist die aktuellste PHP Version und wurde am 20. November 2025 veröffentlicht (Quelle: php.net). Das Release bringt den lang erwarteten Pipe Operator (|>), eine neue URI Extension und die Möglichkeit, Properties beim Klonen zu ändern. PHP 8.5 erhält Active Support bis Dezember 2027 und Security Updates bis Dezember 2029.
Die wichtigsten Features von PHP 8.5:
- Pipe Operator (
|>): Ermöglicht das Verketten von Funktionsaufrufen von links nach rechts, anstatt verschachtelte Aufrufe von innen nach außen zu schreiben. Das Ergebnis der linken Seite wird als Argument an die rechte Seite übergeben. - URI Extension: Eine neue, immer verfügbare Extension zum sicheren Parsen und Modifizieren von URIs nach RFC 3986 und dem WHATWG URL Standard. Ersetzt die fehleranfällige
parse_url()Funktion durch typsichere Objekte. - Clone with: Properties können jetzt beim Klonen direkt geändert werden, was das Wither Pattern für Readonly Classes erheblich vereinfacht.
- #[\NoDiscard] Attribut: Warnt, wenn ein Rückgabewert nicht verwendet wird, und verhindert so typische Fehlerquellen in API Code.
- array_first() und array_last(): Neue Funktionen zum direkten Zugriff auf den ersten oder letzten Wert eines Arrays.
- Fatal Error Backtraces: Fatale Fehler enthalten jetzt Stacktraces, was das Debugging erheblich erleichtert.
- Persistent cURL Share Handles: Handles können über mehrere PHP Requests hinweg persistent gehalten werden.
Zusammen mit FrankenPHP als modernem Runtime bildet PHP 8.5 eine leistungsstarke Basis für zeitgemäße Webanwendungen.
$title = ' PHP 8.5 Released ';
$slug = $title
|> trim(...)
|> (fn($str) => str_replace(' ', '-', $str))
|> (fn($str) => str_replace('.', '', $str))
|> strtolower(...);
var_dump($slug);
// string(15) "php-85-released"
PHP 8.4: Property Hooks und Asymmetric Visibility (November 2024)
PHP 8.4 wurde am 21. November 2024 veröffentlicht und ist eines der feature-reichsten Releases der gesamten PHP 8 Serie (Quelle: php.net). Mit Property Hooks und Asymmetric Visibility verändert PHP 8.4 grundlegend, wie objektorientierter PHP Code geschrieben wird. PHP 8.4 erhält Active Support bis Dezember 2026 und Security Updates bis Dezember 2028.
Die wichtigsten Features von PHP 8.4:
- Property Hooks: Get und Set Hooks können direkt auf Properties definiert werden. Damit entfallen klassische Getter und Setter Methoden, und berechnete Properties werden von IDEs und PHPStan nativ verstanden.
- Asymmetric Visibility: Die Sichtbarkeit für Lesen und Schreiben einer Property kann jetzt getrennt definiert werden, zum Beispiel
public private(set). Das reduziert Boilerplate Code erheblich. - #[\Deprecated] Attribut: PHPs bestehender Deprecation Mechanismus steht jetzt als natives Attribut für eigenen Code zur Verfügung.
- new ohne Klammern:
new PhpVersion()->getVersion()funktioniert jetzt ohne zusätzliche Klammern um den new Ausdruck. - Lazy Objects: Native Unterstützung für Ghost und Proxy Lazy Objects direkt in PHP, was bisher nur über Frameworks wie Doctrine oder Symfony möglich war.
- array_find() und array_any(): Neue Array Funktionen zum Suchen und Prüfen von Elementen mit Callbacks.
- HTML5 DOM: Das DOM Extension wurde für HTML5 Parsing und Manipulation aktualisiert.
- PDO Subclasses: Datenbankspezifische PDO Klassen statt der generischen PDO Klasse.
class PhpVersion {
public string $version {
set (string $version) {
$this->version = strtoupper($version);
}
}
public private(set) string $name = 'PHP 8.4';
}
// new ohne Klammern:
var_dump(new PhpVersion()->name);
PHP 8.3: Typed Class Constants und json_validate (November 2023)
PHP 8.3 erschien am 23. November 2023 und konzentriert sich auf Typsicherheit und Konsistenz (Quelle: php.net). PHP 8.3 befindet sich seit Dezember 2025 im Security Only Modus und erhält bis Dezember 2027 noch Sicherheitspatches.
Die wichtigsten Features von PHP 8.3:
- Typed Class Constants: Klassentypen können jetzt für Konstanten deklariert werden, was Typsicherheit über Vererbungshierarchien hinweg erzwingt.
- #[\Override] Attribut: Stellt sicher, dass eine Methode tatsächlich eine Elternmethode überschreibt. Tippfehler in Methodennamen werden damit sofort als Fatal Error erkannt.
- json_validate(): Prüft, ob ein String syntaktisch gültiges JSON ist, ohne den Overhead von
json_decode(). - Deep Cloning von Readonly Properties: Readonly Properties können jetzt einmalig innerhalb der
__clone()Methode geändert werden. - Dynamic Class Constant Fetch: Konstanten können jetzt über dynamische Ausdrücke wie
Foo::{$name}abgerufen werden. - Randomizer Erweiterungen:
getBytesFromString()undgetFloat()ergänzen die Random Extension aus PHP 8.2.
interface HasVersion {
const string PHP = 'PHP 8.3';
}
class App implements HasVersion {
const string PHP = [];
// Fatal error: Cannot use array as value
// for class constant App::PHP of type string
}
PHP 8.2: Readonly Classes und DNF Types (Dezember 2022)
PHP 8.2 wurde am 8. Dezember 2022 veröffentlicht und bringt weitere Verbesserungen am Typsystem (Quelle: php.net). PHP 8.2 befindet sich im Security Only Modus bis Dezember 2026.
Die wichtigsten Features von PHP 8.2:
- Readonly Classes: Eine gesamte Klasse kann als
readonlydeklariert werden, sodass alle Properties automatisch readonly sind. Ideal für Data Transfer Objects und Value Objects. - DNF Types (Disjunctive Normal Form): Union Types und Intersection Types können jetzt kombiniert werden, z.B.
(A&B)|null. - null, false und true als eigenständige Typen: Diese Werte können jetzt als vollwertige Typen deklariert werden.
- Random Extension: Eine neue objektorientierte API für Zufallszahlengenerierung mit austauschbaren Engines.
- Sensitive Parameter Redaction: Das
#[\SensitiveParameter]Attribut verhindert, dass sensible Werte in Stacktraces erscheinen. - Deprecated Dynamic Properties: Dynamische Properties erzeugen jetzt eine Deprecation Notice und werden in PHP 9.0 entfernt.
readonly class UserData {
public function __construct(
public string $name,
public string $email,
public DateTimeImmutable $createdAt,
) {}
}
// DNF Type Beispiel:
function process((Countable&Iterator)|null $input) {
// ...
}
PHP 8.1: Enums, Fibers und Readonly Properties (November 2021)
PHP 8.1 erschien am 25. November 2021 und führte mit Enums und Fibers zwei der meistgewünschten Sprachfeatures ein (Quelle: php.net). PHP 8.1 hat sein End of Life am 31. Dezember 2025 erreicht und erhält keine Updates mehr.
Die wichtigsten Features von PHP 8.1:
- Enums: Native Enumerations ersetzen Konstanten Klassen und bieten Typsicherheit direkt in der Sprache. Backed Enums können mit
stringoderintWerten arbeiten. - Readonly Properties: Properties können als
readonlydeklariert werden und sind nach der Initialisierung nicht mehr änderbar. - Fibers: Leichtgewichtige Coroutines für kooperative Nebenläufigkeit. Fibers bilden die Grundlage für asynchrone Frameworks wie ReactPHP und Amp.
- First-class Callable Syntax: Referenzen auf Funktionen können mit
strlen(...)stattClosure::fromCallable('strlen')erstellt werden. - Intersection Types: Ermöglichen die Kombination mehrerer Typanforderungen wie
Countable&Iterator. - never Return Type: Zeigt an, dass eine Funktion nicht zurückkehrt, z.B. weil sie eine Exception wirft oder
exit()aufruft. - final Class Constants: Klassenkonstanten können als
finaldeklariert werden, um Überschreiben in Kindklassen zu verhindern.
enum Status: string {
case Draft = 'draft';
case Published = 'published';
case Archived = 'archived';
}
class BlogPost {
public function __construct(
public readonly string $title,
public readonly Status $status,
) {}
}
$post = new BlogPost('PHP 8.1', Status::Published);
PHP 8.0: Named Arguments, JIT und der Beginn einer neuen Ära (November 2020)
PHP 8.0 wurde am 26. November 2020 veröffentlicht und markiert den Beginn der PHP 8 Serie (Quelle: php.net). PHP 8.0 hat sein End of Life im November 2023 erreicht.
Die wichtigsten Features von PHP 8.0:
- Named Arguments: Argumente können nach Parametername statt nach Position übergeben werden, was die Lesbarkeit bei Funktionen mit vielen optionalen Parametern deutlich verbessert.
- Union Types: Mehrere Typen können als
int|stringdeklariert werden. - Match Expression: Ein typsicherer Ersatz für
switchmit striktem Vergleich und Rückgabewert. - Constructor Property Promotion: Konstruktor Parameter können direkt als Properties deklariert werden, was Boilerplate Code in Value Objects drastisch reduziert.
- Attributes: Strukturierte Metadaten in nativer PHP Syntax ersetzen PHPDoc Annotations.
- Nullsafe Operator (
?->): Ermöglicht sichere Methodenketten ohne manuelle Null Prüfungen. - JIT Compiler: Just-in-Time Kompilierung bringt laut php.net etwa dreifache Performance Verbesserungen bei synthetischen Benchmarks und 1,5 bis zweifache Verbesserungen bei bestimmten langlebigen Anwendungen.
class Point {
public function __construct(
public float $x = 0.0,
public float $y = 0.0,
public float $z = 0.0,
) {}
}
// Named Arguments:
$point = new Point(y: 3.5, z: 1.0);
// Match Expression:
$result = match($status) {
'draft' => 'Entwurf',
'published' => 'Live',
default => 'Unbekannt',
};
Rector 2.8 ist bis zu dreimal schneller mit PHPStan Turbo. Neue Features, deprecated Regeln, Einrichtung und Einsatz in der CI für PHP und Symfony.
Mehr erfahrenNCA PHP Upgrade Service: Sicher migrieren mit Rector, PHPStan und PHPUnit
Never Code Alone begleitet Unternehmen bei der sicheren Migration auf aktuelle PHP Versionen. Unser bewährter Upgrade Prozess basiert auf einer Toolchain, die manuelle Fehler minimiert und jeden Schritt automatisiert absichert.
Unsere Toolchain für PHP Upgrades:
- Rector PHP automatisiert den Migrationsprozess von PHP 5.3 bis zur aktuellen PHP 8 Version. Rector analysiert den Abstract Syntax Tree eurer Codebasis und wendet Transformationsregeln an, die veraltete Syntax durch moderne Sprachkonstrukte ersetzen. Ein Upgrade, das manuell Monate dauern würde, erledigt Rector in wenigen Tagen.
- PHPStan auf Level 8 analysiert die gesamte Codebasis vor und nach dem Upgrade auf Typfehler, undefinierte Variablen und inkompatible Methodenaufrufe. So werden potenzielle Probleme erkannt, bevor sie in Produktion landen.
- PHPUnit sichert jeden einzelnen Migrationsschritt durch automatisierte Tests ab. Regressionstests geben sofort Rückmeldung, ob bestehende Funktionalität nach dem Upgrade noch korrekt arbeitet.
- Cypress ergänzt die Unit Tests durch End-to-End Tests der kritischen Business Flows: Checkout, Formulare, Login und andere Nutzerpfade werden nach jedem Upgrade Schritt automatisch geprüft.
Die Integration von Rector und PHPStan in die CI/CD Pipeline sorgt dafür, dass Code Qualität nicht nur beim Upgrade, sondern kontinuierlich überwacht wird. So bleibt eure Anwendung dauerhaft auf dem neuesten Stand. Ob ihr von PHP 7.4, 8.0 oder 8.2 auf PHP 8.5 oder direkt auf 8.6 migrieren wollt, NCA bringt die Erfahrung aus vielen erfolgreichen PHP Upgrades mit.
In my opinion, staying up to date with modern PHP versions is part of the job. Everyone should charge their clients for it, and do the work.
PHPUnit 13 Leitfaden 2026: Installation, Attributes, Sealed Test Doubles, Neuerungen bis 13.3 mit Repeat und Retry, Migration und PHPUnit 14 vorbereiten
Mehr erfahren
Wir sind Experten für PHP und helfen Ihnen, Ihre digitalen Herausforderungen zu meistern. Unser erfahrenes Team unterstützt Sie bei PHP Updates, PHP Refactoring und berät Sie remote zu allen Fragen rund um PHP. Mit unseren vollautomatischen CI/CD Deployments und einer robusten Docker-Infrastruktur bringen wir Ihre PHP-Projekte auf das nächste Level. Vertrauen Sie auf unsere Expertise für zuverlässige und skalierbare PHP-Lösungen.
Häufig gestellte Fragen (FAQ)
Stand April 2026 empfiehlt sich PHP 8.4 oder 8.5. Beide erhalten Active Support mit Bugfixes. PHP 8.2 und 8.3 bekommen nur noch Sicherheitspatches, während PHP 8.0 und 8.1 bereits End of Life erreicht haben und keine Updates mehr erhalten.
PHP 8.6 ist für den 19. November 2026 geplant. Es bringt Partial Function Application mit Platzhaltern, die Klasse Time Duration, die Funktion clamp, Readonly Property Defaults, Stream Fehler als Exceptions, eine native Polling API und sichere Session Defaults. Dazu kommen viele Deprecations wie is_integer und spl_object_hash.
PHP 8.5 bringt den Pipe Operator für lesbare Funktionsketten, eine neue URI Extension für standardkonformes URL Parsing, Clone with für Readonly Classes, das NoDiscard Attribut, array_first und array_last sowie Fatal Error Backtraces.
Property Hooks definieren Get und Set Logik direkt auf der Property statt in separaten Methoden. Das reduziert den Boilerplate Code um bis zu 50 Prozent und wird von IDEs und statischen Analysetools wie PHPStan nativ verstanden.
Ja, mit Tools wie Rector PHP ist ein schrittweises Upgrade von PHP 8.0 auf 8.5 automatisiert möglich. Rector transformiert veraltete Syntax anhand des Abstract Syntax Trees und kennt die Migrationsregeln für jede Version.
Die Kosten hängen von Projektgröße und Codebasis ab. NCA arbeitet mit transparenter Abrechnung: kostenloses Kennenlernen, Aufwand schätzen, minutengenau abrechnen. Durch den Einsatz von Rector und PHPStan sind Upgrades deutlich schneller als eine manuelle Migration, was den Aufwand spürbar senkt.
Seit März 2024 erhält jede PHP Version zwei Jahre Active Support und zwei Jahre Security Updates statt zuvor insgesamt drei Jahre. Das gibt Unternehmen mehr Zeit für Upgrades und reduziert den Druck, sofort nach einem neuen Release zu migrieren.
PHP 8.1 hat am 31. Dezember 2025 sein End of Life erreicht. Neue Sicherheitslücken bleiben dauerhaft ungepatcht. Viele Hosting Anbieter haben PHP 8.1 bereits entfernt oder erzwingen automatische Upgrades auf PHP 8.4.
PHPStan analysiert die Codebasis statisch auf Typfehler und Inkompatibilitäten, bevor das Upgrade durchgeführt wird. Auf Level 8 erkennt PHPStan undefinierte Variablen, falsche Methodenaufrufe und fehlende Rückgabetypen. So werden Probleme vor dem Deployment erkannt.
Ja, Symfony 7 unterstützt PHP 8.4 vollständig. Property Hooks und Asymmetric Visibility lassen sich sofort in DTOs, Value Objects und Service Klassen einsetzen. Rector bietet spezielle Symfony Sets für automatisierte Migrationen.
Der Pipe Operator leitet das Ergebnis eines Ausdrucks als Argument an die nächste Funktion weiter. Statt verschachtelter Aufrufe wie strtolower(str_replace(...)) schreibst du lesbare Ketten von links nach rechts. Mit Partial Function Application in PHP 8.6 wird der Pipe Operator noch leistungsfähiger.
NCA setzt auf eine dreistufige Teststrategie: PHPUnit für Unit und Integration Tests, PHPStan für statische Analyse und Cypress für End-to-End Tests der kritischen Business Flows. So wird jeder Upgrade Schritt automatisch abgesichert.
WordPress 6.9 unterstützt PHP 8.5 offiziell. WordPress 6.8 unterstützt PHP 8.3 vollständig. Für WordPress Projekte empfiehlt sich mindestens PHP 8.4 wegen der längeren Support Laufzeit bis Dezember 2028.