PHP 8.0 verfügbar

01.03.2021 19:19:36

Nach einigen Wochen des Betabetriebs ist PHP 8.0 nun auf allen Servern zur Auswahl verfügbar.

Gleichzeitig ist PHP 8.0 die ausgewählte PHP-Version bei neu erstellten Paketen.

Neuerungen in PHP 8.0 sind unter anderem (Details kann der interessierte Leser über die Links finden):

- Just in Time Compiler (https://wiki.php.net/rfc/jit). Die Macher von PHP versprechen einen deutlichen Performance-Sprung durch diese Technik. Praxistests haben aber bereits gezeigt, dass Anwendungen wie Wordpress oder Joomla nahezu gar nicht von dieser Neuerung profitieren. Spezialisierte Anwendungen, und vor allem langlaufende Scripte profitieren hiervon aber mit doppelter bis dreifacher Geschwindigkeit.

- Named Arguments (https://wiki.php.net/rfc/named_params). Der geplagte PHP-Entwickler, der eine Funktion mit 5 oder mehr Argumenten aufruft, aber nur das letzte davon überhaupt angeben will, wird diese Funktionalität lieben. Statt wie bisher alle anderen Parameter mit Ihren Default-Werten anzugeben, wird nur noch der gewünschte Parameter angegeben mit seinem vorangestellten Namen.

- Constructor Property Promotion (https://wiki.php.net/rfc/constructor_promotion). Zuweisung einer privaten Klassenvariable über den Konstruktor - ein Standard-Vorgehen das immer mindestens 3 Zeilen benötigt (pro Variable) wird auf eine Zeile reduziert.

- Union Types (https://wiki.php.net/rfc/union_types). Vorgegebene Variablen-Typen wurden bereits vor einigen Versionen eingeführt. Funktionen geben vor, welche Variablentypen sie erwarten und passt es nicht, wird eine Exception geworfen. Was aber, wenn man mehr als einen Typ verarbeiten will, aber eben nicht beliebige? Bisher hieß das: zurück zur typenlosen Variablen. Dank Uniontypes können nun mehrere Typen angegeben werden - z.B. function setNumber(int|float $number)

- Nullsafe Operator (https://wiki.php.net/rfc/union_types). Was einige Frameworks bereits mittels entsprechender Hilfsfunktionen anboten, wird nun Kern von PHP. $foo = $a?->b(); Ist $a gleich null, wird null zurück gegeben.

Dies sind nur die für uns schönsten Neuerungen der Sprache, aber derer gibt es noch erheblich mehr. Eine vollständige Auflistung finden Sie in folgendem Blog: Kingsta.com - PHP 8 - improvements and new features

Aufgrund einiger Änderungen in der Sprache ist eine Migration auf PHP8 voraussichtlich nicht ohne Code-Anpassungen möglich. Wer aber von einer der letzten Versionen upgradet sollte keine größeren Probleme haben, da bereits in diesen Versionen viele der kommenden Änderungen als veraltet markiert wurden. Hier finden Sie eine Übersicht über alle Inkompatibilitäten