Wir haben die neue PHP-Version 8.0 auf allen unseren Servern bereits kurz nach dem offiziellen Release ausgerollt. Als dogado-Kunde kannst du jederzeit PHP 8.0 im Cloudpit für deinen gesamten Account oder nach Belieben für einzelne Subdomains aktivieren. Den Einsatz von PHP 8.0 empfehlen wir dir aber zuerst in einer Test- und nicht direkt in deiner Produktiv-Umgebung zu testen.

Inhalts­ver­zeichnis

In diesem Artikel erläutern wir dir ausgewählte Features, die unsere erfahrenen Kollegen cool finden.

Die tollsten Features von PHP 8.0, die du dir merken solltest

Eines der größten und meist gelobten PHP 8.0 Features ist auf jeden der Fall JIT-Compiler (just in time), dank dem in speziellen Anwendungsszenarien deutliche Leistungsgewinne und somit kürzere Seitenladezeiten erzielt werden können. Der neue JIT-Compiler ist auf den Servern nicht automatisch aktiviert, aber du kannst ihn je nach Bedarf zur Laufzeit selbst aktivieren.

Welche PHP 8.0 Features und Updates haben unsere Kolleginnen und Kollegen besonders gefreut?

Match Expression

PHP 8.0 erlaubt die Verwendung von Match Expressions. Sie erfüllen einen ähnlichen Zweck wie die Switch Anweisung, doch bietet der Match Ausdruck einige Vorteile:

Das Ergebnis des Match Ausdrucks kann einer Variable zugewiesen oder als Return-Wert zurückgegeben werden.

Kein versehentliches „fall-through“ durch Vergessen von break.

Eine strikte Überprüfung der Typen reduziert unerwartetes Verhalten.

// PHP < 8.0
switch ($foo) {
  case 'foo':
    $return = 1; break;  
  case 'bar':
  case 'baz':
    $return = 2;   break;  
  default:
    $return = null;   break;    
}

return $return;

// PHP >= 8.0
return match($foo) {
  'foo' => 1,
  'bar', 'baz' => 2,
  default => null,
};

Nullsafe Operator

PHP 8.0 bringt nun erstmals auch einen Nullsafe Operator mit, welcher manchen bereits aus anderen Programmiersprachen bekannt ist.

Mithilfe dieser Operation wird der Wert eines Feldes auf einem Objekt nur dann abgefragt, wenn das Objekt selbst nicht NULL ist. Dadurch lassen sich häufige Konstrukte der Art

$bar = ($foo !== null) ? $foo->baz : null;

wesentlich einfach darstellen, und zwar als:

$bar = $foo?->baz;

Attributes

Wer Doctrine benutzt, kennt es: Sehr viele Attribute mit wichtigen Informationen, abgebildet als Kommentar. Mit PHP 8.0 ändert sich das Ganze nun, denn es wurden native Attribute eingeführt. Die Vorteile sind bessere Performance und auch bessere Überprüfung durch PHP bzw. durch Tools. Syntaktisch sind sie Rust’s Attributen sehr ähnlich.

Named Parameters

Named Parameter machen Code mit sehr vielen Flags wesentlich lesbarer. Wenn eine Funktion beispielsweise 3 bool parameter hat, ist der Aufruf dieser Funktion sehr wenig aussagekräftig. z.B.:

doTheFoo(true, false, false);

Durch das Hinzufügen der Parameter Namen lässt sich viel leichter erkennen, was sich hinter den Flags verbirgt, z.B.:

doTheFoo(force: true, verbose: false, skipOnError: false);

Kompatibilität mit WordPress

Die neueste PHP 8.0 Version ist mit WordPress 5.6 grundsätzlich kompatibel. Was du aber unbedingt beachten solltest, ist, dass viele Plugins und Themen von Hobby-EntwicklerInnen kommen und die Kompatibilität nicht immer gewährleisten. Wir empfehlen dir deshalb das Update auf PHP 8.0 erst nach einem gründlichen Test aller Komponenten auf einer Staging-Website. Mehr dazu findest du hinter diesem Link.

PS: Die gesamten PHP 8.0 Release-Notes findest du übrigens hier.

Du interessierst dich für Managed WordPress? Dann schau gern mal hier!

Bewertung des Beitrages: Ø4,0

Danke für deine Bewertung

Der Beitrag hat dir gefallen? Teile ihn doch mit deinen Freunden & Arbeits­kol­legen

Facebook Twitter LinkedIn WhatsApp