2. Dezember 2024 · onlime
PHP 8.4 ist veröffentlicht und bringt wieder einige praktische Neuerungen für den Entwickleralltag. Im Fokus stehen diesmal vor allem Property Hooks, asymmetrische Sichtbarkeit bei Properties, eine modernisierte DOM-API mit HTML5-Support sowie ein paar kleinere, aber sehr nützliche Verbesserungen in der Sprache und Standardbibliothek. Die offiziellen Release Notes nennen ausserdem Performance-Verbesserungen, Bugfixes und allgemeines Cleanup.
Ein grosser Dank geht wieder an Ondřej Surý, welcher unter DEB.SURY.ORG stets die aktuellsten PHP-Packages für Debian Linux zur Verfügung stellt. Der beste Debian package maintainer ever!
Sämtliche Erweiterungen, welche bisher unter PHP 8.3 verfügbar waren, stehen euch auch bereit unter PHP 8.4.
Die neue Version lässt sich in unserem Controlpanel unter «PHP Manager» konfigurieren und unter «Subdomains» kannst du jede Subdomain resp. die Haupt-Domain (www) individuell auf PHP 8.4 upgraden.
Neuerungen in PHP 8.4
Die wichtigsten neuen Features:
- Property Hooks – Logik direkt an Properties hängen, statt immer separate Getter und Setter zu schreiben.
class User
{
public string $name {
set => strtoupper($value);
}
}
- Asymmetrische Sichtbarkeit – Properties können öffentlich lesbar, aber nur intern schreibbar sein.
class Version
{
public private(set) string $number = '8.4';
}
- Neue DOM-API mit HTML5-Support – Modernere DOM-Verarbeitung inklusive HTML5-Parsing. ([PHP][1])
$dom = Dom\HTMLDocument::createFromString('<main><article>Hello</article></main>');
echo $dom->querySelector('main > article')->textContent;
- Neue
array_*()-Hilfsfunktionen – Zum Beispielarray_find(),array_find_key(),array_any()oderarray_all()für typische Abfragen. Für Laravel-Entwickler nichts Neues, aber schön, dass sich diese Funktionen nun auch im PHP core befinden.
$admin = array_find($users, fn (string $user) => $user['admin']);
newohne zusätzliche Klammern weiterverkettbar – Kleines Syntax-Upgrade, aber angenehm im Alltag.
echo new AppVersion('8.4')->label();
- Neues
#[\Deprecated]-Attribut – Eigene veraltete Funktionen und Methoden sauber markieren.
#[\Deprecated(message: "use newMethod() instead")]
function oldMethode() {}
- und einiges mehr... Die komplette Übersicht findet ihr wie gewohnt auf der offiziellen Release-Seite von PHP.
Für weitere Infos beachte bitte auch die offiziellen Seiten der PHP Group und unser Support-Wiki:
- PHP 8.4 Release Announcement
- PHP 8.4 Changelog
- PHP 8.4 Migration Guide
- Onlime Support-Wiki: PHP Version & Upgrade Tipps
Weitere sehr empfehlenswerte Artikel:
Breaking Changes
PHP 8.4 ist eine neue Major-Version. Das bedeutet, dass einige Änderungen enthalten sind, die mit älterem Code nicht mehr kompatibel sind. Unter anderem wurden die Extensions IMAP, OCI8, PDO_OCI und PSpell aus der PHP-Distribution entfernt und nach PECL verschoben.
Bitte achte auch darauf, dass implizit nullable Parametertypen in PHP 8.4 als deprecated gelten – statt string $value = null sollte künftig also explizit ?string $value = null verwendet werden.
Daneben gibt es weitere Deprecations und kleinere Inkompatibilitäten, die du vor dem Einsatz in Produktion testen solltest. Eine Liste mit allen Breaking Changes findest du wie gewohnt auf der Upgrade-Seite der PHP Group.
Bereit für PHP 8.4?
Aus unserer Sicht gibt es viele gute Gründe für den Wechsel auf PHP 8.4. Die neue Version bringt nicht nur technische Verbesserungen, sondern macht den Code an mehreren Stellen auch angenehmer und sauberer. Wie immer empfiehlt es sich, eigene Applikationen, Libraries und Extensions vor dem Umstieg kurz zu testen.
Du kannst ganz einfach testen, ob deine Website lauffähig ist unter dieser neuen Version. Im Controlpanel unter «Subdomains» kannst du die PHP-Version jederzeit up- resp. downgraden.