Die neue PHP 8.0 Major Version

Nach 3-jähriger Entwicklungsphase ist es endlich so weit. Die neue Major Version PHP 8.0 wurde kürzlich veröffentlicht. Diese bringt eine Vielzahl an Änderungen, neue Features und Fehlerbehebungen mit sich.

PHP 8.0 als Major Version

Worauf dürfen wir uns bei PHP 8.0 freuen?

Weak Maps

Mit dem neuen Major Update von PHP werden sogenannte Weak Maps eingeführt. Hierbei handelt es sich um eine neue Art Variablen anzulegen, welche Auswirkungen auf das Verhalten des Garbage Collectors hat.

Vor PHP 8.0:

Wenn eine PHP Variable gelöscht wird, prüft der Garbage Collecotor ob es andere Variablen gibt, die auf dasselbe Objekt zeigen. Werden keine Variablen gefunden, wird das Objekt aus dem Speicher gelöscht. Dadurch wird die Speicherperformance erhöht.

Ab PHP 8.0:

Die schwachen Variablen (Weak Maps) verhalten sich im Prinzip wie alle anderen Variablen auch. Der Unterschied findet sich bei der Prüfung durch den Garbage Collector. Im Grunde genommen bleiben Weak Maps bei dessen Prüfung unberücksichtigt. Gibt es also nur noch schwache Variablen, die auf ein Objekt zeigen, wird bei PHP 8.0 das zugrunde liegende Objekt trotzdem gelöscht. Dadurch kann noch mehr Speicher freigegeben werden.

Constructor Promoted Properties

Durch Constructor Promoted Properties lassen sich Codezeilen einsparen. Dabei ändert sich die Vorgehensweise für die Deklaration und Zuweisung von Variablen.

PHP 7.4 und älter:

Eigenschaften müssen in der Klasse deklariert werden. Infolgedessen erfolgt die Zuweisung der Parameter im Konstruktor der Klasse.

<?php
class Auto
{
    private string $marke;
    private string $farbe;
    private string $modell;
    public function __construct(
        string $marke = 'BMW',         
        string $farbe = 'blau',
        string $modell = 'X3'
    ) {
        $this->marke = $marke;
        $this->farbe = $farbe;
        $this->modell = $modell;
    }
}

PHP 8.0:

Die Deklaration und Zuweisung der Variablen ist in der Parameterliste des Konstruktors möglich.

<?php
class Auto
{
    public function __construct(
        private string $marke = 'BMW', 
        private string $farbe = 'blau',
        private string $modell = 'X3'
    ) { }
}

JIT-Compiler

Die PHP Version 8.0 verfügt über einen JIT-Compiler. Wobei Sie für sich entscheiden können, ob Sie davon Gebrauch machen wollen oder nicht. Der JIT-Compiler lässt sich also jederzeit vom Benutzer in den Einstellungen deaktivieren. Damit Sie sich die verbesserte Performance nicht entgehen lassen, ist die Nutzung sehr zu empfehlen.

Attribute

Bisher sind nur doc-Kommentare in einer unstrukturierten Form möglich. Stattdessen können in PHP 8.0 Attribute in der Codestruktur angelegt werden. Diese sollen der maschinellen Dokumentation dienen. Diese Metadatenlemente können an PHP Klassen, Funktionen, Methoden, Parametern, Eigenschaften und Konstanten angefügt werden.

Neue Funktionen

Das Update wird mit einer Hand voll neuer Funktionen ausgeliefert:

  • str_contains() function
  • fdiv function() function
  • get_resource_id() function
  • get_debug_type() function
  • str_starts_with() function
  • str_ends_with() function
  • preg_last_error_msg() function

Union Types 2.0

Vor PHP 8.0 konnte man nur einzelne Typen für Eigenschaften, Rückgabeparameter und Übergabeparameter definieren. Künftig erlaubt Ihnen PHP die Deklaration von beliebig vielen Typen mit der Syntax x1|x2|x3|…

Arrays mit negativem Index

In den alten PHP-Versionen ist es möglich für ein Array einen negativen Startwert festzulegen. Allerdings wurde bisher beim Durchführen eines Appends immer mit 0 weitergearbeitet. In Zukunft wird es möglich sein Arrays, mit negativen Index, ohne Unterbrechung anzulegen.

Beispiel vor dem PHP 8.0 Release:

Die Anlage eines Arrays mit Startwert -4 führt bei 3 Appends zu den Indizes -4, 0, 1, 2.

Beispiel nach dem PHP 8.0 Release:

Die Anlage eines Arrays mit Startwert -4 führt mit 3 Appends führt zu den Indizes -4, -3, -2, -1.

Es gibt noch weitaus mehr Änderungen. Diese können Sie in den Ankündigungen zu PHP 8.0 auf der Webseite von PHP nachlesen.

Wann muss ich auf PHP 8.0 umsteigen?

Wie in der Softwareentwicklung üblich gibt es auch bei PHP einen Produktlebenszyklus, in der der Hersteller sicherheitsrelevante und fehlerbehebende Updates entwickelt.

Dieser Phasen lassen sich folgendermaßen einteilen:

1

Aktiver Support:

Die Version wird aktiv unterstützt. Gemeldete Fehler und Sicherheitsprobleme werden behoben.

2

Security Updates:

Der Support wird auf die Behandlung kritischer Sicherheitsprobleme beschränkt.

3

Lebensende:

Die PHP-Version wird nicht mehr vom Hersteller unterstützt. Aus diesem Grund wird ein schneller Wechsel auf die aktuelle Version wird empfohlen.

Der vom Entwickler veröffentlichten Roadmap können Sie die Aktualität Ihrer PHP-Version prüfen. Entsprechend sollten Sie den Lebenszyklus im Auge behalten. Damit kann Ihre Webanwendung den strengen Anforderungen an Sicherheit und Performance gerecht werden.

Funktioniert WordPress mit PHP 8.0?

Wie beim letzten PHP-Major Update können nach dem PHP 8.0 Release wieder vermehrt Fehler in WordPress auftreten. Auslöser können neue Funktionen, leistungsoptimierende Maßnahmen (z. B. der neue JIT-Compiler), Anpassungen für mehr Sicherheit oder das Entfernen von früheren Funktionen sein.

Nichtsdestotrotz arbeiten die Entwickler von WordPress mit Hochdruck an der Kompatibilität der aktuellen Version mit der PHP Version 8.0, sodass die meisten Core-Funktionen von WordPress laufen. Einige WordPress-Plugins haben allerdings teilweise Probleme mit PHP 8.0, weshalb Sie die Umstellung zuvor am besten in einer getrennten Testing-Umgebung Ihres WordPress ausprobieren. Wenn Sie sich nicht sicher sind, ob Ihr WordPress mit PHP 8.0 kompatibel ist, dann können wir gerne eine kostenfreie Einschätzung abgeben. Kontaktieren Sie uns hierzu gerne. Mehr zu unserer WordPress-Betreuung finden Sie unter WordPress-Wartung.

PHP 8.0 ist bei SPIEGLHOF media verfügbar.

Auf Ihren Wunsch können wir Ihnen ab sofort PHP 8.0 auf Ihrem Managed Server oder in Ihrem Webspace bereitstellen. Sie können neue Funktionen testen und die Systemkompatibilität mit Ihrer Webanwendung prüfen. Da PHP 8.0 erst kürzlich veröffentlicht wurde, sind leider noch nicht alle üblichen Extensions verfügbar.

Falls Sie nach einem Dienstleister suchen, der Ihren Webspeicherplatz regelmäßig für die neuste PHP-Version nutzbar macht, steht Ihnen das SPIEGLHOF media Team sehr gerne zur Verfügung. Als Webdesigner aus Landshut können wir Ihnen zusätzlich eine vollumfängliche Betreuung Ihrer Webanwendungen anbieten.

Häufige Fragen zu PHP 8.0 :

  • Wann wurde PHP 8.0 veröffentlicht?

    • Das offizielle Release-Datum war der 26.11.2020. Um Fehler frühzeitig erkennen und beheben zu können, wurde bereits vor einigen Monaten die erste PHP 8.0 Beta-Version bereitgestellt.

Business-Webspace inkl. PHP 8 kostenlos testen

Sie können unseren Business-Webspace mit der aktuellsten PHP Version 8 für 3 Monate kostenlos testen.

  • völlig kostenlos
  • keine Vertragsbindung
  • verlängert sich nur auf Ihren Wunsch

Lernen Sie SPIEGLHOF media als Premium Anbieter für Webhosting besser kennen und erhalten Sie persönlichen Support ohne lange Wartezeiten.

Damit wir Ihren Webspace bereitstellen können bitten wir Sie Kontakt zu uns aufzunehmen.

Nader Bebawy, Kundenbetreuer

Nader Bebawy
Kundenbetreuer

+49 871 3300974