PHP 8.1 – Bessere Performance & neue Funktionen

Philipp Zeder
Autor:

Philipp Zeder

Kategorie:

in

Entwicklung & Performance

Veröffentlicht am 28. Jan. 2022

Aktualisiert am 26. Feb. 2024

PHP 8.1 ist Ende 2021 erschienen. Du kannst die neueste PHP-Version ab sofort auf deinem Webhosting, Webhosting Pro, Managed Server oder Agencyserver nutzen. Heute zeigen wir dir, über welche Neuerungen du dich beim neuesten PHP-Ableger freuen darfst:

Noch mehr Performance

Auf das Thema Performance legen wir hier bei cyon immer ein starkes Augenmerk. Klar, deine Website soll schliesslich so schnell wie möglich im Browser deines Publikums landen. Nicht zuletzt bei Online-Shops führen längere Ladezeiten zu höheren Absprungraten. Und damit zu Umsatzeinbussen.

Darum freuen wir uns (und ich hoffe, du dich auch) über den neuen Vererbungscache, der bei PHP 8.1 Einzug in den Code gefunden hat. Der dafür verantwortliche Core-Entwickler, Dmitry Stogov, berichtet von Geschwindigkeitsgewinnen zwischen 5 – 8 %. Auch Brent Roose von stitcher.io hat bei Tests zum Vererbungscache Performancegewinne in vergleichbarem Rahmen erreicht.

Neben dem neuen Cache sorgen noch einige weitere Neuerungen für mehr Speed in PHP 8.1. Laut den PHP-Entwickler*innen sind damit bei WordPress-Websites Geschwindigkeitsgewinne von 3.5 % im Vergleich zu PHP 8.0 zu erwarten. Bei Applikationen, die auf dem Symfony-Framework basieren, liegen die Verbesserungen sogar bei 23 %.

Neue Funktionen

PHP 8.1 ist vollgepackt mit neuen Features und eine komplette Aufzählung sprengt hier den Rahmen. Das sind die 3 neuen Funktionen, die uns am meisten Freude machen:

Enums

Mit Enums (kurz für Enumerations) hält ein Konzept in PHP Einzug, das es bei anderen Sprachen schon lange gibt. Enums repräsentieren eine Sammlung von Konstanten, die zudem typisiert werden können.

Was du vor PHP 8.1 mit

class Status
{
    const DRAFT = 'draft';
    const PUBLISHED = 'published';
    const ARCHIVED = 'archived';
}
function acceptStatus(string $status) {...}

über Konstanten erreicht hast, schreibst du dank Enums neu so:

enum Status
{
    case Draft;
    case Published;
    case Archived;
}
function acceptStatus(Status $status) {...}

Die integrierte Typisierung erlaubt es dir, robusteren Code zu schreiben und die Entwicklung von PHP hin zu einer typensichereren Sprache wird fortgeführt.

Fibers

Mit Fibers erhält PHP einen Mechanismus, der das gleichzeitige Ausführen, Pausieren und Abbrechen von Vorgängen ermöglicht. Du wirst das in anderen Sprachen als «Green Threads» oder «User Threads» bekannte Konzept vermutlich nicht selbst direkt einsetzen, aber Frameworks wie Amphp und ReactPHP werden davon profitieren können.

$fiber = new Fiber(function (): void {
   $value = Fiber::suspend('fiber');
   echo "Value used to resume fiber: ", $value, PHP_EOL;
});

$value = $fiber->start();

echo "Value from fiber suspending: ", $value, PHP_EOL;

$fiber->resume('test');

Readonly-Properties

Ab PHP 8.1 können Properties als readonly deklariert werden. Der Name verrät’s: Mit readonly verhinderst du, dass das Property nach der Initialisierung verändert werden kann. Damit wird dein Code, wie schon bei Enums, weiter robuster, weil unvorhergesehene Datenveränderungen schlichtweg nicht mehr möglich sind.

class Test {
   public readonly string $prop;

   public function __construct(string $prop) {
       // Legal initialization.
       $this->prop = $prop;
   }
}

$test = new Test("foobar");
// Legal read.
var_dump($test->prop); // string(6) "foobar"

// Illegal reassignment. It does not matter that the assigned value is the same.
$test->prop = "foobar";
// Error: Cannot modify readonly property Test::$prop

PHP gedeiht weiter schön

Das erste Minor-Update des 8er-Strangs sorgt für Freude und zeigt, dass bei PHP noch lange nicht das Ende der Fahnenstange erreicht ist. Ganz im Gegenteil. Die vielen Neuerungen in PHP 8.1 kommen vor allem der statischen Analyse und damit vielen Frameworks und Libraries zu Gute. Das stärkt die Professionalisierung von PHP weiter und lässt uns positiv in die PHP-Zukunft blicken.

PHP 8.1 jetzt bei cyon verfügbar

Bei der neuesten PHP-Version hat es dieses Mal etwas länger gedauert, aber: Du kannst PHP 8.1 jetzt nutzen. Wähle dazu im PHP-Versionsmanager in deinem my.cyon-Konto unter «Erweitert > PHP-Versionsmanager» das Verzeichnis, für das du die Version aktivieren möchtest. Eine Schritt-für-Schritt-Anleitung findest du in unserem Supportcenter: PHP-Version eines Verzeichnisses ändern

Wie jede neue PHP-Version bringt auch PHP 8.1 Änderungen mit sich, die nicht mehr mit älterem PHP-Code kompatibel sind. Du solltest vor einem Wechsel auf die neue Version prüfen, ob deine Applikation davon betroffen ist. Eine Übersicht über sämtliche Änderungen und Neuerungen liefert dir die offizielle Release-Seite auf php.net. Und wenn du noch etwas tiefer in die einzelnen Neuerungen eintauchen möchtest, sind die Artikel von Brent Roose wärmstens zu empfehlen.

Titelbild: Jordan Heinrichs/Unsplash

Beteilige dich an der Diskussion

4 Kommentare

Thomas
Thomas 2. Feb. 2022 10:45

Hallo Philipp, gibt es schon Pläne MySQL 8 oder MariaDB 10 anzubieten? Die aktuelle MySQL Version 5.7 ist etwas veraltet.

Philipp Zeder
Philipp Zeder cyon
4. Feb. 2022 15:19

Hey Thomas. Ja wir werden MySQL 8 anbieten, das entsprechende Projekt läuft bereits. Zum genauen Zeitpunkt, wann MySQL 8 verfügbar sein wird, kann ich Dir aktuell noch keine Angabe machen.

Danilo
Danilo 30. Jan. 2022 16:20

Nice, gibt’s inzwischen vielleicht auch eine Roadmap für ein Update von MySQL?

Philipp Zeder
Philipp Zeder cyon
4. Feb. 2022 15:20

Hey Danilo, merci fürs Nachfragen. Siehe meine Antwort an Thomas.