Hier kommt die neue Version von PHP

PHP 8: Diese Features bringt das Update

Es ist offiziell - die erste komplette Version von PHP 8 kommt am 26. November 2020. Für die "Early Birds" sind bereits Alpha Versionen zum Testen verfügbar. Sie finden die jeweils neuste Version hier: https://www.php.net/archive/2020.php .

Neue Features

PHP 8 bringt einerseits Erweiterungen für eine verbesserte Performance aber auch diverse Änderungen um den Entwicklern den Alltag zu erleichtern. Die hier aufgeführten Features werden definitiv in der finalen Version von PHP 8 sein.

JIT

"JIT" bedeutet "just in time" oder zu Deutsch "gerade noch rechtzeitig". Da PHP keine kompilierte Sprache (wie z.B. C, Java oder C#) ist, wird der Code während der Laufzeit in Maschinencode übersetzt. "JIT" überwacht den Code während der Laufzeit und merkt sich, welche Codestellen regelmässig aufgerufen werden. Aus diesem Code wird optimierter Maschinencode erstellt, welcher anstelle des "echten" Codes verwendet werden kann.

Union types

Mit PHP 8 können mehrere mögliche Typen in der Argumentendefinition oder Returnwerte angegeben werden.

public function foo(Foo|Bar $input): int|float;

Nullsafe operator

Diese Änderung wird das Leben vieler PHP-Entwickler erleichtern.

$confirmationDate = $reservation->getConfirmation()?->getDate();

In früheren PHP Versionen musste man zuerst prüfen ob es eine Konfirmation zu dieser Reservation gibt, da man eine Exception auslöst, wenn man versucht eine Methode auf "null" auszuführen. Mit PHP 8 lässt sich das komfortabel auf einer Zeile lösen. Wenn "->getConfirmation()" null zurückgibt, wird die Kette unterbrochen und $confirmationDate wird auf null gesetzt.

Named arguments

Bereits in vielen anderen Sprachen existierend kann diese Funktionalität die Lesbarkeit des Codes ein grosses Stück verbessern.

sumUp(firstNumber: 14, secondNumber: 44);

Attributes

Attribute, oder wie sie in vielen anderen Sprachen genannt werden, Annotations, ermöglichen einen neuen Weg, dem Code Metadaten hinzuzufügen. Diese Funktionalität war bisher bereits mit Docblocks möglich, allerdings ermöglichen Attributes eine einheitliche Strukturierung der Metadaten.

Match Expression

Diese neue Expression funktioniert ähnlich wie "switch" mit einigen Unterschieden:

  • Sie kann Werte zurückgeben
  • Kein "break" nötig
  • Striktes Vergleichen der Werte

Ob match besser oder schlechter als switch ist, kann jeder für sich selbst entscheiden. Fest steht, dass grosse switch-Statements mit match ein gutes Stück verkürzt werden können.

Constructor property promotion

Klassen-Properties welche im Konstruktor übergeben und zugewiesen werden, erzeugten bisher einige Zeilen an Boilerplate Code. Neu können diese Properties direkt im Konstruktor definiert werden.

Weitere Neuerungen

PHP 8 bietet eine grosse Anzahl Neuerungen, von denen hier nur ein Teil erläutert wurde. Für eine komplette Übersicht schauen Sie unter diesem Link nach: https://wiki.php.net/rfc#php_80

Fazit: Lohnt sich die Umstellung auf PHP 8?

Wir finden: Auf jeden Fall! Die neuen Änderungen versprechen ein angenehmeres Erlebnis für Benutzer wie auch Programmierer. Damit die Umstellung auf PHP 8 so schmerzfrei wie möglich funktioniert, empfiehlt es sich, PHP zuvor auf die Version 7.4 zu setzen.

Alle Blogeinträge