Im Juni 2020 feierte PHP sein 25-jähriges Jubiläum. Bereits 1995 erblickte die Sprache demnach das Licht der Welt und heute, ganze 25 Jahre später, sind wir bei der nächsten großen Hauptversion angelangt. Die bringt nun abermals ein paar weitreichende Neuerungen mit. PHP 8, um ganz genau zu sein, wird bereits Ende 2020 erscheinen, nachdem bis zur Mitte des Jahres noch fleißig neue Features hinzugefügt werden konnten. Jetzt geht es darum, diese in einem letzten Schritt zu finalisieren, um anschließend die Release Version bereitstellen zu können.
In unserem Beitrag dreht sich alles um die Möglichkeiten und Neuerungen, die PHP 8 mitbringen wird. Außerdem klären wir, wie sich diese auswirken und bemerkbar machen und worauf bei der Umstellung auf PHP 8 zu achten ist. Im Kern geht es bei PHP 8 übrigens um ein zentrales Thema, nämlich den sogenannten JiT. Doch wir möchten nicht vorgreifen.
Attributes in PHP 8
Neu sind in PHP 8 die Attributes, die in anderen Sprachen gerne auch mal als Annotations bezeichnet werden. Attributes ermöglichen es Meta-Daten mit einer strukturierten Form zu übertragen, weshalb die Docblocks für diesen Zweck überflüssig werden. Wer Genaueres dazu erfahren möchte, findet hier eine recht umfangreiche Einführung und Erklärung der Attributes in PHP 8.
Just-in-Time Compiler
Das eine große Ding von PHP 8, wenn man es so nennen möchte, ist der sogenannte Just-in-Time Compiler, kurz auch einfach als JiT bezeichnet. So etwas kennt jeder von euch von Javascript, denn dort sorgt der Just-in-Time Compiler dafür, dass Code im Browser besonders schnell interpretiert und sofort ausgeführt werden kann.
Derzeit ist es nämlich so, dass PHP als Skriptsprache zunächst einmal via Interpreter in lesbaren Code übersetzt werden muss. Erst dann kann der Server damit arbeiten und ihn entsprechend übersetzten. PHP fängt dabei immer am Anfang einer Datei an und beginnt bei jedem Aufruf von vorne. Immer und immer wieder. Es sei denn ihr nutzt den OPCache, denn dort kann ständig genutzter Code bereits zwischengespeichert werden, um nicht jedes Mal neu interpretiert werden zu müssen.
Scriptsprachen haben den Vorteil, dass sie für die Nutzung nicht jedes Mal komplett kompiliert werden müssen, wie das z. B. bei C oder Java der Fall ist. Bei diesen Sprachen kann Code erst dann ausgeführt werden, wenn er entsprechend kompiliert wurde. Scriptsprachen hingegen setzten viel eher auf Dynamiken, es ist nicht nötig sie vollständig zu kompilieren, sie werden demnach direkt ausgeführt.
Jetzt kommen wir zurück zum Just-in-Time Compiler. Der JiT wird zukünftig nämlich prüfen, welche Stellen immer wieder aufgerufen werden, sich dabei aber nie verändern. Diese Stellen markiert er entsprechend und speichert sie als lesbaren Maschinencode, während der andere Teil unberührt bleibt. Das spart jede Menge Zeit, vor allem aber auch Ressourcen, was dann wiederum für eine noch höhere Geschwindigkeit von PHP 8 sorgt.
Der Sprung in Sachen Performance ist hier allerdings nicht gigantisch, es geht eher darum, dass PHP in Zukunft auch für andere Projekte effektiv eingesetzt werden kann. Datenanalyse, Rendering oder gar Machine-Learning. Die Sprache wird seit PHP 7 einfach beständig optimiert und ist inzwischen sehr schnell und effektiv geworden. Der JiT setzt nun noch einmal einen drauf.
Weitere Änderungen in PHP 8
Der große Elefant im Raum ist also der Just-in-Time Compiler von PHP 8. Es gibt viele kleine Änderungen unter der Haube, doch das, was PHP 8 eben ausmachen wird, ist der JiT. Daneben gibt es noch Dinge wie den Nullsafe operator, Named arguments, Weak maps und noch einiges mehr. Neu ist auch, dass in PHP 8 nun »::class« auf Objekte angewandt werden kann, anstatt »get_class()« zu verwenden.
Alle weiteren Neuerungen, die nun für den finalen Release Ende 2020 vorbereitet werden, findet ihr auf der Website des Entwicklers Brent Roose. Dort hat er alle Veränderungen und Anpassungen noch einmal äußerst detailreich dargelegt und erklärt diese sogar anhand von kleinen Beispielen. Wirklich sehr lesenswert, wie wir finden.
Da PHP 8 eine neue, sogenannte Major Version von PHP darstellt, kommt es zu einigen Inkompatibilitäten. Heißt im Klartext, dass PHP 8 Code nicht mehr mit älteren PHP-Versionen funktioniert. Teilweise zumindest. Allerdings ist das meiste schon seit PHP 7 als veraltet markiert und Entwickler sollten somit keine Schwierigkeiten beim Umstieg haben. Genaueres findet ihr auf GitHub, wo derzeit eine entsprechende Liste mit den Breaking Changes gepflegt wird.
Vorläufiges Fazit zu PHP 8
Der Star von PHP 8 ist ganz klar der Just-in-Time Compiler, denn damit führt PHP fort, was bereits mit PHP 7 begann – immer bessere Performance. Zwar wird der Sprung diesmal nicht ganz so radikal ausfallen und nicht ganz so stark bemerkbar sein, wie damals bei PHP 7, doch gerade für CPU-nahe Anwendungen wird der JiT enorme Vorteile bieten, da sind wir uns fast sicher.
Ende 2020 wird es dann soweit sein. Vermutlich im Dezember, wie aktuell geplant und bekannt ist. Bis dahin heißt es warten und sich schon einmal vorbereiten. Wie bei jeder großen Version von PHP, kommt es nämlich auch diesmal wieder zu einigen Inkompatibilitäten, die vorab geprüft und korrigiert werden sollten.
Allgemein ist es schon sehr interessant, wie beliebt PHP nach wie vor ist und wie häufig es zum Einsatz kommt. Schon vor gefühlt einem Jahrzehnt gab es die kleine laute Masse, die auf PHP schimpfte. Heute, mehr als zehn Jahre später, ist PHP jedoch stärker als jemals zuvor und entwickelt sich mit PHP 8 abermals mit großen Schritten beständig und logisch weiter. So wird PHP auch in Zukunft noch äußerst relevant bleiben. Auf ein weiteres Jahrzehnt also.
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.