php 8 - verbesserung, update, bugs - php 7.4 -

PHP 8 – das neue Major Release steht in den Startlöchern

Ende dieses Jahres ist es wieder soweit: Nach langer Entwicklungszeit und einigen vorab veröffentlichten Beta-Versionen erscheint mit PHP 8 das neue Major Release der beliebten und häufig genutzten Skriptsprache PHP. Laut aktuellen Daten von W3Techs werden fast 80 Prozent aller Webseiten weltweit serverseitig mit PHP betrieben. PHP 8 ist der Nachfolger des im Dezember 2019 erschienenen PHP 7.4 und bringt zahlreiche Verbesserungen und neue Funktionen mit.

Betreiber von WordPress-basierten Internetauftritten können sich auf mehr Performance, höhere Zuverlässigkeit und neue Möglichkeiten freuen. Im Folgenden geben wir dir einen kurzen Überblick über die wichtigsten Neuerungen von PHP 8. Vor allem den neuen JIT-Compiler, der mehr Leistung und Geschwindigkeit verspricht, betrachten wir etwas näher. Aber auch auf einige für PHP-Entwickler interessante Funktionen gehen wir kurz ein.
Unterm Strich ist eine aktuelle PHP-Version relevant für Performance, Sicherheit und Kompatibilität – Warum du PHP updaten solltest.

1. Grundsätzliches zu PHP, dem Major Release PHP 8.0 und WordPress

Bevor wir auf die Neuerungen von PHP 8 eingehen, möchten wir dir für das bessere Verständnis einen kurzen Überblick über die grundsätzliche Funktionsweise und die Bedeutung von PHP geben. Lies auch bei CHIP zu Was ist PHP? oder kurz und bündig auf der offiziellen Seite php.net. Das Kürzel PHP ist ein rekursives Akronym für Hypertext Preprocessor, welches der weit verbreiteten Skript- und Programmiersprache ihren Namen gibt. Dabei handelt es sich um eine Open-Source-basierte Skriptsprache, die vor allem in der Webprogrammierung und zur Generierung dynamischer HTML-Webseiten zum Einsatz kommt. Fast alle wichtigen Content Management Systeme wie WordPress, TYPO3 oder Joomla und viele bekannte Onlineshop-Systeme wie Magento, Shopware oder xt:commerce nutzen serverseitig die Skriptsprache PHP zur Generierung der im Webbrowser angezeigten Internetseiten.

 

html, java und php - von if über get bis array
PHP ist mit 80% die meistgenutzte Programmiersprache von Webserven!

Wie bei anderen Programmiersprachen liegt PHP inzwischen in vielen verschiedenen Versionen vor. Jedes Jahr erscheinen neue Versionen, die Verbesserungen und Funktionserweiterungen mitbringen – ca. alle drei Jahre gibt es ein neues Major-Release. In der Regel unterstützen Webhoster mehrere unterschiedliche PHP-Versionen wie beispielsweise PHP 7.2, PHP 7.3 oder PHP 7.4. (Zur Erinnerung: Versionen vor PHP 7.2 erhalten seit Juni 2020 keine Sicherheitsupdates mehr.)

 

So kann man über entsprechende Konfigurationseinstellungen in der Regel selbst wählen, welche PHP-Version der Webserver verwenden soll. Aus Sicherheits- und Performancegründen empfiehlt es sich, möglichst aktuelle PHP-Versionen zu nutzen. Das CMS (in der Regel WordPress), die eingesetzten Plugins und individuelle Codes müssen diese Version natürlich unterstützen. Für sehr alte PHP-Versionen ist auch kein aktiver Support mehr gegeben. Wer einen WordPress-basierten Internetauftritt betreibt, muss die Skriptsprache PHP nicht im Detail kennen oder „lesen / schreiben“ können. WordPress ist bereits vollständig in PHP programmiert. Dennoch solltest du über einige Besonderheiten und Vorzüge der einzelnen PHP-Versionen im Bilde sein. Für fortgeschrittene WordPress-Anwender und Entwickler von PHP-basierten Codes wie Plugins oder Themes sind detaillierte PHP-Kenntnisse aber unabdingbar. Wenn du auf dem Laufenden bleiben willst, empfehlen wir dir die News-Seite von php.net.

 

2. Einige Neuerungen von PHP 8 im Detail

Auf alle Neuerungen des neuen Major Releases PHP 8 im Detail einzugehen, würde den Rahmen dieses Blogbeitrags sprengen. Deshalb stellen wir die nur einige der wichtigsten Neuerungen genauer vor. Als Entwickler macht es aber durchaus Sinn, sich beispielsweise über die Seiten des PHP-Pojekts detaillierter mit den Neuerungen in PHP 8 auseinanderzusetzen. Zumal sich Programmierer auf einige Anpassungen ihres Codes einzustellen haben. Beginnen möchten wir mit dem neuen Jit-Compiler. Er verspricht Performanceverbesserungen, von denen auch dein WordPress-Internetauftritt profitiert.

 

Neuer Jit-Compiler – der Performance-Trumpf

Sicherlich eine der bedeutendsten Veränderungen in PHP 8 ist der neue JIT-Compiler. JIT steht für „Just in Time“. Der JIT-Compiler sorgt auf dem Webserver für deutlich mehr Geschwindigkeit beim Erzeugen der dynamischen Webseiten. Um das Funktionsprinzip des JIT-Compilers zu verstehen, zunächst einige Hintergründe zur Funktionsweise von PHP:

Bei PHP handelt es sich um eine sogenannte interpretierte Sprache. Im Vergleich zu Sprachen wie C oder Java wird nicht der komplette Code kompiliert, sondern der Code wird zur Ausführung zeilenweise interpretiert. Das bedeutet, dass die auszuführenden PHP-Zeilen für den Prozessor des Webservers Zeile für Zeile immer neu in Maschinencode übersetzt werden. Diese Vorgehensweise ist recht ressourcenaufwendig, da immer wieder gleiche Codezeilen erneut interpretiert werden müssen. Rechenzeit und Arbeitsspeicher werden verschwendet. Der JIT-Compiler verspricht Abhilfe, indem er vereinfacht ausgedrückt die Bestandteile des PHP-Codes während der Laufzeit kompiliert und dem Prozessor des Webservers die wiederholt auftretenden Code-Elemente bereits interpretiert im Cache zur Verfügung stellt.

 

mehr performance - php 8 im benchmark vergleich

 

Die Zeilen müssen also nicht immer wieder neu interpretiert werden, sondern sind direkt als optimierter Maschinencode ausführbar. JIT verwendet zur Generierung des nativen Codes aus dem PHP-Bytecode DynASM, eine Art dynamischen Assembler. Damit erzielt der JIT-Compiler deutliche Performanceverbesserungen und reduziert den Speicherverbrauch. Erste Performancetests mit Beta-Versionen von PHP 8.0 zeigten bei diesem Testcode ein deutliches Performance-Potential. Die vielen kleinen Änderungen ohne JIT-Compiler schafften es bereits, die Verarbeitungszeit um ca. 5% zu reduzieren. Mit dem JIT-Compiler konnte die Verarbeitungszeit dann halbiert werden, hier war PHP 8 mehr als doppelt so schnell wie PHP 7.4. In der alltäglichen Anwendung wird dieser Effekt definitiv weniger ausgeprägt sein, aber PHP bleibt weiterhin ein Performance-Treiber.

 

Union Types

Die jetzt neu in PHP 8 eingeführten Union Types kennen viele eventuell schon aus anderen Programmiersprachen wie C. Union Types erlauben es, mehrere Typen zu einer Union zusammenzufassen. Alle in einer Union zusammengefassten Typen lassen sich verwenden und akzeptieren Werte unterschiedlicher Art. Vor der Einführung von Union Types mit PHP 8 mussten recht aufwendig sogenannte phpdoc-Annotationen eingesetzt werden. Vorteil der Union Types sind eine geringere Fehleranfälligkeit und schnellere Erkennung von Fehlern sowie eine übersichtlichere Syntax.

 

Named Arguments

Eine weitere Neuerung von PHP 8 sind die Named Arguments, teilweise auch als Named Parameters bezeichnet. Es handelt sich dabei um die Möglichkeit, Eingabedaten anhand der Parameterdaten an Funktionen zu übergeben. Zudem wird das sogenanntes Array-Spreading unterstützt. Dank der Named Arguments lässt sich der Code sauberer und flexibler gestalten.

 

Weak Maps

Weak Maps sind als eine Art Fortführung der in PHP 7.4 eingeführten Weak Refs zu verstehen. Hinter dem Begriff Weak Maps verbirgt sich eine Funktionalität, die es dem Garbage Collector erlaubt, Objekte zu löschen, wenn sie nur noch vom Cache referenziert werden. Dadurch wird der Umgang mit diesen Objekten wesentlich ressourcenschonender und Speicherleaks bei lang laufenden Prozessen lassen sich vermeiden.

 

Attributes

Attributes sind vielleicht so manchem aus anderen Programmiersprachen unter dem Begriff Annotations bekannt. Es sind strukturierte Metadaten, mit denen sich die Eigenschaften von Objekten, Dateien und anderen Elementen beschreiben lassen. In PHP 7.4 musstest du hierfür sogenannte Doc-Kommentare verwenden. Jetzt kannst du mit den Attributes strukturierte Metadaten mit definierter Syntax zu den Deklarationen von Funktionen, Klassen, Parametern und anderem hinzufügen. In jeder Deklaration lassen sich ein oder mehrere Attribute einfügen. Jedes Attribut kann ein oder mehrere Werte haben.

 


Kostenloser Speedtest CTA Box

Wie schnell ist deine WordPress Seite?

Teste jetzt kostenlos die Ladezeit deiner Webseite!

✔ Du bekommst das Testergebnis direkt per E-Mail.


 

3. Weitere Features von PHP 8 kurz aufgelistet

Wie bereits erwähnt, gibt es sehr viele Neuerungen in PHP 8 und auf die wichtigsten davon sind wir schon eingegangen. Im Folgenden ein kurzer Überblick über einige weiteren Änderungen, Verbesserungen und neue Funktionalitäten in Listenform:

  • mehrere neue PHP-Funktionen wie zum Beispiel str_contains, str_starts_with() und str_ends_with() oder get_debug_type
  • Variable Syntax-Tweaks
  • Static Return Type
  • Mixed Type
  • Konvertierung von DateTime- und DateTimeImmutable-Objekten
  • fdiv-Funktion, die das Teilen durch 0 erlaubt und INF, -INF oder NAN als Rückgabewerte liefert
  • Anwenden von ::class auf Objekte
  • Stringable Interfaces
  • Konkretisierung zahlreicher Fehlermeldungen
  • intelligentere Reaktionen bei der Arbeit mit mehreren Operatoren
  • Einführung der Nachkommas in Parameterlisten
  • und einiges mehr

Möchtest du dich im Detail mit PHP 8 beschäftigen, findest du auf den Seiten des PHP-Pojekts alle notwendigen Informationen inklusive anschaulicher Code-Beispiele.
Auch die Kollegen von t3n haben PHP 8 super zusammengefasst.

 

4. Wie funktioniert das PHP-Update?

Plesk Control Panel - PHP

Direkt nach dem finalen Release von PHP 8.0 testen wir die finale Version kurz und rollen sie dann serverweit aus. Danach kannst du sie einfach im Control-Panel auswählen. Wie das funktioniert und wie du vorgehen kannst, wenn du aktuell bei einem anderen Hostinganbieter bist, kannst du hier bei den Tipps zum PHP-Update noch einmal nachlesen. Für Plesk-User und Kunden von HostPress empfiehlt sich auch unser Hilfe-Artikel PHP-Einstellungen in Plesk.

 

 

 

Dein Hostinganbieter sollte bestenfalls stets die aktuelle Version von PHP zur Verfügung stellen. Wenn du auf der Suche nach einem verlässlichen Hostingpartner bist, der dir auch mal bei derartigen Angelegenheit schnell und einfach zur Seite steht, solltest du nach einem gut bewerteten Anbieter von Managed WordPress Hosting Ausschau halten.
Falls du noch Fragen oder Anmerkungen hast zum PHP-Release hast, freuen wir uns über einen Kommentar!