Ein Bild mit einem Laptop, das das offizielle PHP.net-Logo von PHP 8.4 und das charakteristische PHP-Elefanten-Symbol zeigt.

PHP 8.4 Höhepunkte: Was ist neu, Funktionen und Verbesserungen erklärt

Vollgepackt mit leistungsstarken Funktionen und Verbesserungen verspricht die neueste PHP 8.4 Version, das Programmieren effizienter und flexibler zu gestalten.

Offiziell veröffentlicht Ende November 2024, war PHP 8.4 bei SiteGround seit August 2024 in der Beta-Phase verfügbar, als wir zu den ersten Unternehmen gehörten, die es für Tests auf all unseren Servern bereitstellten.

Seitdem haben wir festgestellt, dass es immer beliebter wird. Über 6000 Website-Besitzer, die bei SiteGround hosten, haben es bereits auf ihrer Website ausprobiert.

Wenn Sie sich fragen, ob Sie den Wechsel vornehmen sollten und worum es bei dem ganzen Trubel geht, lesen Sie weiter, da wir alles abdecken, was Sie über PHP 8.4 wissen müssen, von seinen herausragenden Funktionen bis hin zu praktischen Tipps, wer am meisten davon profitieren wird. Lassen Sie uns eintauchen!

PHP 8.4 Wichtige Erkenntnisse

PHP 8.4 markiert ein bedeutendes Update im Lebenszyklus von PHP und führt Fehlerbehebungen, Funktionen und Verbesserungen ein, die Leistung und Entwicklung optimieren.

Funktionen wie verbesserte Eigenschaftsverwaltung, neue Hilfsfunktionen und erweiterte Datenbank-Tools vereinfachen das Programmieren und verbessern die Effizienz.

Die Verwendung der neuesten Versionen hilft auch, langfristig gegen Schwachstellen zu schützen.

Als Website-Besitzer müssen Sie jedoch vorsichtig sein – die neuesten Versionen sind möglicherweise nicht mit Ihrer Website kompatibel. Wir empfehlen, es zuerst auf einer Staging-Kopie der Website zu testen.

Veröffentlichungszeitplan und SiteGround

PHP 8.4 (Beta 3) wurde am 15. August 2024 veröffentlicht. SiteGround führte den frühen Zugang dazu am 20. August 2024 ein, damit unsere Kunden es so früh wie möglich testen konnten.

Die allgemeine Verfügbarkeit (GA) von PHP 8.4 war am 21. November 2024. SiteGround fügte die offizielle Version am 26. November 2024 zu unseren Servern hinzu, nur fünf Tage nach der Ankündigung.

Was ist neu in PHP 8.4?

PHP 8.4 führt mehrere neue Funktionen ein, die in Syntaxverbesserungen, Bibliotheks- und API-Verbesserungen sowie bessere Array-Manipulation kategorisiert werden können.

1. Syntax- und Sprachverbesserungen

1.1. Property-Hooks

In PHP-Versionen vor 8.4 war die Verwaltung von Eigenschaftszugriffen und -änderungen in der Regel mit der Definition expliziter Getter- und Setter-Methoden innerhalb einer Klasse verbunden. 

Dieser Ansatz war zwar funktional, führte aber oft zu ausführlicherem Code und trennte das Verhalten der Eigenschaft von ihrer Deklaration.

class User {
    private string $firstName;
    private string $lastName;

    public function __construct(string $firstName, string $lastName) {
        $this->firstName = $firstName;
        $this->lastName = $lastName;
    }

    public function getFullName(): string {
        return $this->firstName . ' ' . $this->lastName;
    }

    public function setFullName(string $fullName): void {
        [$this->firstName, $this->lastName] = explode(' ', $fullName, 2);
    }
}

$user = new User('John', 'Doe');
echo $user->getFullName(); // Outputs: John Doe
$user->setFullName('Jane Smith');
echo $user->getFullName(); // Outputs: Jane Smith

In diesem Beispiel werden die Methoden getFullName und setFullName verwendet, um den vollständigen Namen des Benutzers zuzugreifen und zu ändern.

Mit der Einführung von Property-Hooks in PHP 8.4 können Entwickler nun benutzerdefiniertes Verhalten für den Zugriff (get) und die Modifikation (set) von Eigenschaften direkt innerhalb der Eigenschaftsdeklaration definieren.

Diese Funktion vereinfacht den Code, indem die Logik innerhalb der Eigenschaft selbst eingebettet wird.

Verwendung von Property-Hooks in PHP 8.4:

class User {
    private string $firstName;
    private string $lastName;

    public function __construct(string $firstName, string $lastName) {
        $this->firstName = $firstName;
        $this->lastName = $lastName;
    }

    public string $fullName {
        get => $this->firstName . ' ' . $this->lastName;
        set {[$this->firstName, $this->lastName] = explode(' ', $value, 2);}
    }
}
$user = new User('John', 'Doe');
echo $user->fullName; // Outputs: John Doe
$user->fullName = 'Jane Smith';
echo $user->fullName; // Outputs: Jane Smith

In diesem aktualisierten Beispiel nutzt die fullName-Eigenschaft Property-Hooks, um die get– und set-Verhalten direkt innerhalb ihrer Deklaration zu definieren.

Dieser Ansatz reduziert die Notwendigkeit für separate Methoden und hält die Logik der Eigenschaft innerhalb ihrer Definition gekapselt.

Für ein umfassendes Verständnis und zusätzliche Beispiele verweisen wir auf das offizielle PHP-Handbuch zu Property-Hooks.

1.2. Asymmetrische Sichtbarkeit

In PHP 8.4 ermöglicht die asymmetrische Sichtbarkeit Entwicklern, separate Zugriffsebenen für das Lesen und Schreiben von Klassen-Eigenschaften zu definieren.

Ein Screenshot eines Codeausschnitts aus der offiziellen PHP.net-Dokumentation, der zeigt, wie neue asymmetrische Sichtbarkeitsverbesserungen die Programmierpraktiken verändern.

Die Sichtbarkeitsdeklaration public private(set) wird verwendet, um öffentlichen Zugriff zum Lesen zu ermöglichen, aber privaten Zugriff zum Setzen des Wertes einzuschränken. Dies erlaubt es, dass die Eigenschaft von außerhalb der Klasse lesbar, aber nur innerhalb der Klasse modifizierbar ist.

1.3. #[\Deprecated] Attribut

In PHP 8.4 wurde das #[\Deprecated]-Attribut eingeführt, um Klassen, Methoden, Funktionen oder Eigenschaften als veraltet zu kennzeichnen.

Dies dient als formale Angabe, dass das markierte Element nicht mehr zur Verwendung empfohlen wird und in zukünftigen Versionen entfernt werden könnte.

Die Nutzung dieses Attributs verbessert die Codeklarheit und unterstützt Entwickler dabei, veraltete Funktionen zu identifizieren und zu ersetzen.

1.4. New MyClass()->method() ohne Klammern

In PHP 8.4 wurde die Syntax für das direkte Aufrufen einer Methode nach der Erstellung einer neuen Instanz einer Klasse verbessert. Zuvor hätten Sie eine Klasse instanziiert und dann eine Methode an dieser Instanz in zwei separaten Schritten aufgerufen:

$instance = new MyClass();

$instance->method();

Mit PHP 8.4 können Sie den Methodenaufruf direkt an die Instanziierung anhängen, wodurch die Notwendigkeit für Klammern entfällt:

new MyClass->method();

Diese vereinfachte Syntax verbessert die Lesbarkeit des Codes und reduziert die Ausführlichkeit.

2. Bibliotheks- und API-Verbesserungen

2.1. Objekt-API für BCMath

In PHP 8.4 führt die BCMath-Erweiterung die BcMath\Number-Klasse ein, die einen objektorientierten Ansatz für Arithmetik mit beliebiger Genauigkeit bietet.

Ein Screenshot eines Codeausschnitts aus der offiziellen PHP.net-Dokumentation, der zeigt, wie man einen objektorientierten Ansatz für arithmetische Berechnungen mit beliebiger Genauigkeit unter Verwendung der neuen BcMath\Number-Klasse implementiert.

Diese Verbesserung ermöglicht intuitiveren und lesbareren Code bei der Durchführung von Dezimalberechnungen.

2.2. Neue ext-dom-Funktionen mit verbessertem HTML5-Support

Die ext-dom-Erweiterung wurde verbessert, um robuste, standardkonforme Unterstützung für das Parsen und Manipulieren von HTML5-Dokumenten zu bieten.

Diese Verbesserung behebt langjährige Probleme und führt neue Funktionen ein, die die Arbeit mit HTML5-Inhalten vereinfachen.

Wichtige Verbesserungen:

  1. Einführung der Dom\HTMLDocument-Klasse:
    • Eine neue Klasse, Dom\HTMLDocument, wurde dem Dom-Namespace hinzugefügt. Diese Klasse bietet eine moderne, objektorientierte Schnittstelle für den Umgang mit HTML5-Dokumenten und sorgt für bessere Integration und Benutzerfreundlichkeit.
  2. Verbessertes Parsen und Serialisieren:
    • Die neue API ermöglicht eine genaue Analyse und Serialisierung von HTML5-Dokumenten und löst damit frühere Konformitätsprobleme. Dadurch wird sichergestellt, dass HTML5-Inhalte korrekt verarbeitet werden, was eine zuverlässigere Bearbeitung von Dokumenten ermöglicht.
  3. Erweiterte Funktionalität:
    • Mehrere neue Funktionen wurden eingeführt, um häufige Aufgaben zu vereinfachen, wie das Abfragen von Elementen mit CSS-Selektoren und das Durchlaufen des DOM. Diese Ergänzungen machen es bequemer, mit HTML5-Dokumenten zu arbeiten.

2.3. PDO-Treiber-spezifische Unterklassen

In PHP 8.4 verbessert die Einführung von PDO-Treiber-spezifischen Unterklassen die Flexibilität und Funktionalität der PDO (PHP Data Objects)-Erweiterung. Diese Verbesserung ermöglicht es Entwicklern, auf Datenbankfunktionen wie treiberspezifische SQL-Parser zuzugreifen, die zuvor über die generische PDO-Klasse nicht zugänglich waren.

Wichtige Funktionen:

  • Zugriff auf treiberspezifische Methoden: Jeder PDO-Treiber hat jetzt seine eigene Unterklasse, die den Zugriff auf Methoden ermöglicht, die einzigartig für dieses Datenbanksystem sind. Zum Beispiel bietet die Pdo\Sqlite-Unterklasse Methoden wie createFunction(), die spezifisch für SQLite sind.
  • Verbesserte Codeklarheit: Durch die Nutzung dieser Unterklassen wird der Code lesbarer und wartbarer, da datenbankspezifische Funktionalitäten innerhalb ihrer jeweiligen Klassen gekapselt sind.
// Verwendung von PDO::connect(), um die treiberspezifische Unterklasse zu instanziieren

$pdo = PDO::connect('sqlite:/path/to/database.db');

// Verwendung der treiberspezifischen Methode

$pdo->createFunction('my_function', function($value) {

return strtoupper($value);

});

In diesem Beispiel gibt PDO::connect() eine Instanz von Pdo\Sqlite zurück, die den Zugriff auf SQLite-spezifische Methoden wie createFunction() ermöglicht.

Rückwärtskompatibilität:

Diese Verbesserung bewahrt die Rückwärtskompatibilität. Bestehender Code, der die generische PDO-Klasse verwendet, funktioniert weiterhin wie zuvor. Entwickler können sich entscheiden, die treiberspezifischen Unterklassen zu nutzen, wenn sie auf datenbankspezifische Funktionen zugreifen müssen.

2.4. Aktualisierungen der Standardbibliothek

Über die wesentlichen Änderungen an Bibliotheken und APIs hinaus verfeinert PHP 8.4 seine Standardbibliothek mit nützlichen neuen Hilfsfunktionen und subtilen Verbesserungen.

Beispielsweise haben Entwickler jetzt Zugriff auf fpow() für die Fließkomma-Exponentierung, neue Lazy-Objekte und neue Methoden zur Verwaltung von HTTP-Antwort-Headern. 

Darüber hinaus erhält die DateTime-Bibliothek präzisionsorientierte Updates, die die Handhabung zeitbezogener Aufgaben in PHP verbessern. Diese Updates, obwohl kleiner im Umfang, tragen zu einer reibungsloseren und effizienteren Entwicklungserfahrung bei.

3. Neue Hilfsfunktionen

PHP 8.4 führt neue Array-Funktionen ein, die vielseitigere und effizientere Möglichkeiten zur Manipulation von Arrays bieten.

  • array_findDurchsucht ein Array nach dem ersten Element, das eine bestimmte Bedingung erfüllt.
  • array_find_keyFindet den Schlüssel des ersten Elements in einem Array, das eine bestimmte Bedingung erfüllt.
  • array_anyÜberprüft, ob irgendein Element in einem Array eine bestimmte Bedingung erfüllt.
  • array_allBestimmt, ob alle Elemente in einem Array eine bestimmte Bedingung erfüllen.
$numbers = [1, 2, 3, 4, 5];

// Finde die erste gerade Zahl
$firstEven = array_find($numbers, fn($n) => $n % 2 === 0);
echo $firstEven; // Gibt aus: 2

// Finde den Schlüssel der ersten Zahl, die größer als 3 ist
$key = array_find_key($numbers, fn($n) => $n > 3);
echo $key; // Gibt aus: 3

// Überprüfe, ob irgendeine Zahl größer als 4 ist
$anyGreaterThanFour = array_any($numbers, fn($n) => $n > 4);
var_dump($anyGreaterThanFour); // Gibt aus: bool(true)

// Überprüfe, ob alle Zahlen positiv sind
$allPositive = array_all($numbers, fn($n) => $n > 0);
var_dump($allPositive); // Gibt aus: bool(true)

Diese Ergänzungen vereinfachen Array-Operationen, verbessern die Codeklarheit und reduzieren die Notwendigkeit für ausführliche Schleifen.

PHP 8.4 Veraltungen

Mit jeder neuen PHP-Version werden einige Funktionen als veraltet markiert, um den Weg für bessere Alternativen zu ebnen. Veraltungen helfen PHP, sich weiterzuentwickeln, während Entwicklern Zeit gegeben wird, ihren Code anzupassen.

Eine bemerkenswerte Veraltung in PHP 8.4 ist die Entfernung dynamischer Eigenschaften bei Standardobjekten, eine Funktion, die lange für schnelle, ad-hoc Zuweisungen von Eigenschaften verwendet wurde. Ein weiteres Beispiel ist die Veraltung impliziter nullable Typen.

Entwickler werden nun ermutigt, typisierte Eigenschaften oder magische Methoden wie __get und __set für bessere Leistung und Klarheit zu verwenden.

Für eine vollständige Liste der veralteten Funktionen können Sie die offizielle Dokumentation des PHP-Teams einsehen.

1. Rückwärts inkompatible Änderungen

Es gibt einen Unterschied zwischen Veraltungen und rückwärts inkompatiblen Änderungen. Mit jeder Veröffentlichung gibt es auch Änderungen, die die Funktionsweise bestimmter Syntax und Code vollständig brechen.

Für eine vollständige Liste der rückwärts inkompatiblen Updates verweisen wir auf die offizielle PHP-Dokumentation.

Das bedeutet, dass Sie besonders vorsichtig sein müssen, wenn Sie auf eine neuere Version umsteigen. Oftmals, wenn Sie Software von Drittanbietern verwenden, können Probleme auftreten, da es Zeit braucht, bis Entwickler ihre Produkte aktualisieren, damit sie mit der neuesten PHP-Version kompatibel sind.

Deshalb sollten Sie eine Staging-Umgebung verwenden, um zu testen, ob die neueste Version Teile Ihrer Website beeinträchtigt. Dies ist besonders wichtig, wenn Sie derzeit eine Version älter als 8.0 verwenden.

Wir zeigen Ihnen später im Artikel, wie Sie dies sicher mit den Tools von SiteGround tun können.

Wenn Sie eine Website verwalten, ist es ein guter Zeitpunkt, Ihren Code auf veraltete Funktionen zu überprüfen. Wenn Sie sich jetzt mit diesen Änderungen befassen, können Sie sich Kopfschmerzen ersparen, wenn sie in zukünftigen PHP-Versionen vollständig entfernt werden.

Sie können eine PHP-Kompatibilitätsprüfung im Rahmen unserer Expert Care Services anfordern, sodass die Überprüfung und das Upgrade professionell von unseren Technikern durchgeführt werden können.

2. Versionsunterstützung

PHP 8.4 wird zwei Jahre lang aktiv unterstützt, gefolgt von zwei Jahren kritischer Sicherheitsupdates. Sie können die offizielle PHP-Dokumentation für die genauen Enddaten einsehen.

Wenn Sie eine veraltete Version von PHP verwenden, empfehlen wir dringend, auf die neueste stabile Version zu aktualisieren, um die Sicherheit und Leistung zu verbessern.

Wie aktualisiert man auf PHP 8.4?

Für die meisten Benutzer empfehlen wir, bei Managed PHP zu bleiben, um Komplikationen und das Brechen Ihrer Produktionswebsite zu vermeiden. Wenn Sie technisch versiert sind und testen möchten, wie Ihre Website auf 8.4 läuft, lesen Sie weiter, um zu erfahren, wie Sie dies sicher tun können.

1. SiteGrounds Managed PHP

Standardmäßig sind alle SiteGround-Kunden auf unseren Managed PHP-Service eingestellt, was bedeutet, dass wir Ihre PHP-Version automatisch aktualisieren, sobald eine neuere stabile Version verfügbar ist.

Dies wird für die meisten Benutzer empfohlen, die nicht technisch versiert sind, da die neuesten Versionen möglicherweise einen Konflikt in Ihrer Anwendung aufgrund einer Plugin- oder Themeninkompatibilität einführen können.

Wir bewerten jede neue PHP-Version sorgfältig und führen Tests auf Kompatibilität mit den am häufigsten verwendeten Anwendungen auf unserer Plattform durch.

Ab Februar 2025 ist die Standard-Managed-PHP-Version von SiteGround auf unseren Servern 8.2.

Wir empfehlen diese Version als die am weitesten kompatible neueste Veröffentlichung. Bevor wir unsere Standard-PHP-Version aktualisieren, stellen wir immer sicher, dass wir genügend Nutzungsdaten haben, um die Sicherheit, Stabilität und Leistung für die Mehrheit der Websites auf unserer Plattform zu gewährleisten.

Deshalb lassen wir einige Zeit verstreichen, bevor wir unsere Standardversion auf jede neue Veröffentlichung umstellen, obwohl letztere fast sofort nach ihrer Veröffentlichung auf unseren Servern zum Testen verfügbar sind.

Fortgeschrittene Benutzer können jederzeit manuell auf PHP 8.4 über Site Tools umschalten.

2. Kompatibilität

Wie bereits erwähnt, können alle neuesten PHP-Versionen Fehler auf Ihrer Website verursachen, daher wird immer empfohlen, die neuesten Versionen zuerst in einer Staging-Umgebung zu testen.

Wir bieten ein unkompliziertes, ein-Klick-Tool, mit dem Sie einfach eine Kopie Ihrer WordPress-Website erstellen können, die Sie verwenden können, um auf Plugin- oder Themenkonflikte zu überprüfen, bevor Sie Ihre Hauptwebsite aktualisieren.

Ein Screenshot der SiteGround Site Tools-Dashboard-Seite, auf der Sie eine Staging-Kopie Ihrer WordPress-Website erstellen können.

Sobald Sie eine Staging-Kopie erstellt haben, folgen Sie den unten stehenden Schritten, wenn Sie diese auf PHP 8.4 umstellen und testen möchten, wie sie auf Ihrer Website funktioniert.

3. Testen Sie PHP 8.4.

Die meisten Anbieter bieten ein PHP-Verwaltungstool an, um zwischen verschiedenen Versionen für Ihre Website zu wechseln. Um manuell auf 8.4 bei SiteGround zu aktualisieren, gehen Sie zu Ihrem Site Tools Dashboard > Devs > PHP-Manager:

Ein Screenshot des SiteGround Site Tools-Dashboard-PHP-Managers, in dem Sie die PHP-Einstellungen Ihrer Websites ändern können.

Wechseln Sie zur Registerkarte Staging Sites:

Ein Screenshot des SiteGround Site Tools-Dashboard-PHP-Managers, in dem Sie die PHP-Einstellungen einer Staging-Site ändern können.

Klicken Sie auf die Schaltfläche Bearbeiten unter Aktionen, wechseln Sie von Managed PHP zu PHP-Version manuell ändern und wählen Sie 8.4.3.

Ein Screenshot des SiteGround Site Tools-Dashboard-Menüs, in dem Sie die PHP-Version einer Website ändern, mit einem Dropdown-Menü, das verfügbare Versionen von 8.0 bis 8.4 anzeigt.

So einfach ist das! Der nächste Schritt besteht darin, zu überprüfen, ob die Website wie erwartet funktioniert. Wenn einige Funktionen nicht mehr funktionieren, müssen Sie weiter untersuchen.

Vielleicht ist ein Plugin oder das von Ihnen verwendete Theme noch nicht vollständig mit der neuesten Version kompatibel. Oder es gibt benutzerdefinierten PHP-Code auf Ihrer Website, der überarbeitet werden muss.

In solchen Fällen ist es am besten, bei unserer Managed PHP-Version zu bleiben und zu warten, bis diese Probleme behoben sind, bevor Sie Ihre Hauptwebsite auf die neueste PHP-Version aktualisieren.

4. Ultrafast PHP

SiteGround hat einen wohlverdienten Ruf für die Fokussierung auf Leistungsoptimierung. Aus diesem Grund hat unser Team eine benutzerdefinierte Version von PHP entwickelt, die die Website-Leistung um bis zu 30 % steigert.

Es ist exklusiv für unsere Benutzer mit GrowBig-Plänen (und höher) verfügbar und vollständig kompatibel mit PHP 8.4. Wenn Sie davon profitieren möchten, sehen Sie sich unsere Managed Hosting-Lösungen an und melden Sie sich noch heute an, um die Geschwindigkeit Ihrer Website zu steigern!

Ein Werbebanner, das die einzigartigen Geschwindigkeits-Hosting-Funktionen von SiteGround auflistet.

PHP 8.4: Zusammenfassung und nächste Schritte

PHP 8.4 ist eine nützliche Verbesserung für Entwickler und Website-Besitzer gleichermaßen. Mit seiner optimierten Syntax, verbesserten APIs und neuen Funktionen vereinfacht es das Codieren und steigert die Leistung und Zuverlässigkeit von Websites.

Mit den PHP-Versionen auf dem neuesten Stand zu bleiben, ist entscheidend für die Aufrechterhaltung einer schnellen und zuverlässigen Online-Präsenz. Upgrades sollten sorgfältig durchgeführt werden, um einen reibungslosen Übergang und ein nahtloses Erlebnis für Ihre Besucher zu gewährleisten.

Deshalb ist es wichtig, einen Hosting-Anbieter zu nutzen, der mit den neuesten Technologien Schritt hält und die notwendigen Tools bietet, um Ihre Website sicher zu verwalten.

Bei SiteGround machen wir Upgrades unkompliziert. Mit unseren Managed PHP und Ultrafast PHP-Diensten können Sie Spitzenleistung und nahtlose Updates genießen.

Bereit, das Beste zu erleben, was PHP 8.4 zu bieten hat? Melden Sie sich noch heute für unsere Managed Hosting-Pläne an und machen Sie Ihre Website zukunftssicher!

Aleksandar Kolev

Verfasser technischer Inhalte

Aleksandar ist seit 2019 bei SiteGround und bringt stets eine ausgeprägte analytische Denkweise und einen kreativen Touch in seine Arbeit ein. Als Autor technischer Inhalte widmet er sich der verständlichen und ansprechenden Darstellung komplexer Themen. Außerhalb der Arbeit genießt Aleksandar einen minimalistischen, naturverbundenen Lebensstil und begeistert sich für Musik und Auftritte. Sein kontinuierliches Interesse an Yoga, Tai-Chi und Meditation trägt zu seinem ausgewogenen Lebens- und Arbeitsstil bei.

Starten Sie die Diskussion