Das Thema PHP 8 geistert nun schon eine ganze Weile umher. Bereits vor einigen Monaten hatten wir euch daher erläutert, was PHP 8 für potenzielle Vorteile und Neuerungen mitbringen wird. Einiges war noch nicht sicher, anderes sehr theoretisch. Inzwischen ist PHP 8 als finale Version veröffentlicht worden.

Für uns erneut ein Grund, die aktuelle Release Version von PHP 8 ein wenig genauer unter die Lupe zu nehmen. In unserem Beitrag schauen wir uns daher noch einmal an, was PHP 8 zu bieten hat, in welchen Bereichen es zu Verbesserungen gekommen ist und ob alles, was in den Betas bereits verfügbar war, nun in einem finalen Zustand integriert worden ist.

Zum Artikel

Neue Features von PHP 8

Seit Juli 2020 befand sich PHP 8 in der Phase des sogenannten Feature-Freeze. Heißt im Klartext: Alles was enthalten sein sollte, war bereits vorhanden, musste fortan aber noch optimiert und finalisiert werden, um reibungslos zu funktionieren.

Die Features von PHP 8 sind dabei die folgenden: Just-in-Time Compiler, Attributes, Named Arguments, Match Expressions, Throw Expressions, Static Return Type, Union Type, Mixed Types.

PHP 8 überspringt zudem die Version 7.5 und macht sofort mit dem neuen Major Release, also Version 8.0 weiter. Die größte und wichtigste Neuerung ist und bleibt der JIT Compiler, wobei auch die Attribute für viele von wesentlicher Bedeutung sind. Doch gehen wir noch einmal etwas mehr in die Details.

PHP8 Features

JIT Compiler

Das eine große Feature, auf das viele gewartet haben, ist in PHP 8 der JIT Compiler. Der verändert die Art, wie PHP Code ausgeführt wird. Normalerweise wird dieser nämlich via Interpreter in lesbaren Code übersetzt, um ihn anschließend bearbeiten zu können. PHP ist darauf ausgelegt, dass die Ausführung immer am Anfang der Datei beginnt und am Ende abschließt (weshalb der OPCache eingeführt wurde).

Der Just-in-Time Compiler wird mit PHP 8 hingegen Teile des Codes sofort als lesbaren Maschinencode speichern und so die Kompilierung umgehen, um ihn direkt über die CPU zu berechnen. Handelt es sich dann um Abschnitte, die immer wieder aufgerufen werden, sind diese unmittelbar ausführbar, ohne dafür erneut bei null, also am Anfang der Datei, beginnen zu müssen.

Gerade bei mathematischen Funktionen wird dies eine deutliche Steigerung der Performance nach sich ziehen. Das hat zur Folge, dass PHP interessanter für Grafikanwendungen oder sogar Machine Learning wird, wo es bislang eher weniger beliebt war. Den großen Sprung werden viele jedoch nicht merken, da der JIT Compiler nicht überall ansetzt und für normale Websites tatsächlich nicht den großen Unterschied bringen wird. Es geht hier wirklich eher um sehr rechenintensive Operationen. Bereiche eben, in denen PHP bislang kaum sinnvoll anzuwenden war. Der JIT Compiler soll genau das nun ändern.

Weitere PHP 8 Features

Kritik an PHP 7 gab es immer wieder in Bezug auf die notwendigen Doc-Kommentare, die als einzige Möglichkeit dienten, Metadaten zu den entsprechenden Deklarationen hinzuzufügen. Mit PHP 8 ist es jetzt möglich, Attribute statt Docblocks einzusetzen. Die sind jedoch ebenfalls nicht ohne Kritik, denn die gewählte Syntax sorgte bereits vorab für Inkompatibilitäten und schaffte so neue Probleme.

Auch Weakmaps, als Evolution der Weak Refs von PHP 7.4, sind bei PHP 8 mit dabei. Sie erlauben dem Garbage Collector Objekte zu löschen, wenn selbige nur noch vom Cache referenziert werden. Named Arguments hingegen sorgen dafür, dass Code sauber und effizient wird, indem sie Eingabedaten anhand von Parameterdaten an Funktionen übermitteln.

Wir möchten hier aber gar nicht auf sämtliche Änderungen eingehen. Vor allem deshalb nicht, weil diese sauber dokumentiert wurden. Wer sich dafür interessiert, findet direkt beim Entwickler Brent Roose einen entsprechenden Beitrag im Blog. Der zeigt nicht nur alle neuen Features, sondern unterfüttert die Informationen auch noch mit ein paar Beispielen. Das Wichtigste dürfte für die meisten aber der oben erwähnte JIT Compiler sein.

Dokumentation

PHP 8 in Verbindung mit WordPress

Da es sich bei PHP 8 um ein sogenanntes Major Update, also eine große Hauptversion handelt, ist entsprechend Vorsicht geboten. Gerade was WordPress angeht, kam es in der Vergangenheit des Öfteren zu Problemen in Bezug auf eine neue PHP-Version. Das ist nur logisch, da ein WordPress Blog durch unzählige Plugins und die Vielzahl an Themes natürlich Codeteile enthält, die unter Umständen bereits stark veraltet oder lange Zeit nicht mehr angepasst worden sind. Dann führt eine neue PHP-Version unweigerlich zu Schwierigkeiten.

Für PHP 8 ist das insofern ein Problem, als WordPress eine teilweise eher veraltete Codebasis besitzt. Darüber zu urteilen, kann einen eigenen, sehr umfangreichen Artikel füllen. Yoast SEO hat im Blog einen entsprechenden Beitrag veröffentlicht, welcher die Kompatibilität von WordPress und PHP 8 besonders detailliert unter die Lupe nimmt.

Deutlich wird vor allem, dass es auf der Website zu jeder Menge Komplikationen kommen kann, die unter PHP 8 fatale Fehler hervorrufen würden. Ist es also ratsam, den Server auf PHP 8 zu aktualisieren, wenn dort ein WordPress Blog betrieben wird?

PHP8 Release
Wordpress Kompatibilität

Bei PHP 8 ist Warten angesagt

Nein, vermutlich ist es nicht ratsam, den eigenen WordPress Blog direkt auf PHP 8 zu aktualisieren. Genau wie andere Experten raten wir zum jetzigen Zeitpunkt ebenfalls nicht dazu. Da der Wechsel von PHP 7 zu PHP 8 zudem nicht mit demselben Performance-Boost einhergeht wie damals der Umstieg von PHP 5 auf PHP 7, sollte dies auch kein großes Problem darstellen. Selbst der JIT Compiler hilft in Sachen Performance nur bei sehr spezifischen, nicht aber allen Aufgaben.

Die Vorteile von PHP 8 sind somit deutlich begrenzt, vor allem in Bezug auf die potenziellen Probleme und Gefahren, die entsprechende Fehler mit sich bringen würden. Statt also zeitnah ein Update zu starten, raten wir euch dazu, noch ein wenig zu warten. Zumindest bis etwaige Komplikationen aus der Welt geschaffen wurden und Plugins voll kompatibel erscheinen.

Wer zudem Kunden betreut oder die Website seines Unternehmens verwaltet, sollte sowieso nicht sofort wechseln. Hier ist das Risiko zu groß, dass Teile oder bestimmte Funktionen durch die Umstellung Fehler verursachen. Erst prüfen, Bugfixes abwarten und dann im letzten Schritt updaten.

by A-DIGITAL one

Unsere Herzen schlagen Digital, unsere Projekte leben Digital, unsere Kunden lieben und schätzen Digital! Die einzigartige digitale Performance, die wir seit 1999 an den Tag legen.

Mit unserem Team von über 45 Experten begleiten wir Sie auf Ihrem Weg der digitalen Transformation. Mit klaren Strategien, persönlicher Betreuung und exzellenter Ausführung entwickeln wir, innovativ und individuell, maßgeschneiderte digitale Lösungen, die performen und verkaufen können.