Hinweis an alle HostPress Kunden:
Wir kümmern uns gerne um die Umstellung eurer PHP 7.4 auf Version 8.x
PHP 7.4 bekommt seit dem 28. November 2022 keine Sicherheitsupdates mehr und wird nicht mehr weiterentwickelt. Das bedeutet, dass auftauchende Sicherheitslücken in PHP 7.4 auch nicht mehr vom Hersteller gefixt werden und somit eine ernstzunehmende Angriffsfläche für z.B. Hacker darstellen.
Hier kannst du uns beauftragen, das Upgrade für deine Seite auf PHP 8.x kostenpflichtig durchzuführen.
Ab 30. Januar 2023 werden wir aus Sicherheitsgründen kein PHP 7.4 mehr anbieten und wir bitten dich, dein System dementsprechend auf die PHP 8.x Version zu aktualisieren. Es wird bei uns nicht wie bei anderen Hostern eine Zwangsumstellung geben und wir bieten auch keinen kostenpflichtigen „Extended Support“ an. Die PHP 7.4 Version wird bei uns in den Einstellungen jeder Webseite einfach „ausgeblendet“.
Webseiten, die PHP 7.4 noch weiter nutzen, werden vorerst nicht durch uns deaktiviert. Die weitere Nutzung erfolgt dann aber auf eigenes Risiko.
Wir empfehlen daher dringend, die Umstellung von PHP zeitnah durchzuführen, um sicherzustellen, dass deine Website und deine Daten geschützt bleiben.
Jetzt auch nachlesen: Wie kann ich PHP 7.4 selbst auf eine neuere Version 8.x umstellen?
Vorsicht beim Update auf Major Release PHP 8
PHP 8 wird ab WordPress 5.6 unterstützt. Jedoch konnte eine vollständige Kompatibilität mit den umfangreichen Änderungen in PHP 8 noch nicht realisiert werden, weswegen teilweise auch bloß von einer Beta-Kompatibilität mit WordPress 5.6 die Rede ist. Besser natürlich, die aktuelle WordPress-Version 5.8 zu verwenden. Das Update sollte zunächst nicht ohne Weiteres durchgeführt werden und insbesondere sollten auch die verwendeten Plugins und Themes auf Kompatibilität geprüft werden.
– Jetzt ins neue Update zu PHP 8.2 reinschauen –
– Jetzt ins neue Update zu PHP 8.2 reinschauen –
Alles Wissenswerte zum aktuellen Major Release PHP 8
Es ist 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.
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. Eine Einleitung – kurz und bündig – gibt es auch 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.
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.
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.
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.
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.
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:
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.
- 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 Update auf PHP 8.0?
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!
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!
PHP 8.0 sollte jetzt noch nicht verwendet werden.
Quelle:
https://www.wordfence.com/blog/2020/11/php-8-what-wordpress-users-need-to-know/
Danke für den Hinweis, Christian
Ja, es ist besondere Vorsicht geboten, da PHP 8 erst seit WordPress 5.6 implementiert wurde. Daher sind die Kinderkrankheiten hier noch stärker ausgeprägt. Insbesondere, weil das Major-Release einige Änderungen im Hintergrund mit sich bringt.
Im Zweifel lieber immer erst ein wenig abwarten.
Hallo Johannes,
ich könnte auf PHP 8.0 absolut verzichten!!! Wenn ich bei meinem Website-Hoster die Umstellung von 7 auf 8 mache, funktionieren alle meine Homepages nicht mehr richtig, die ich bei WordPress habe. Das ist einfach ganz übel. Ich habe 3 verschiedene Homepages mit je einem anderen Template und Menü, und kein Menü funktioniert mehr mit PHP 8.0… ich meine, was soll ich davon halten… außer dass da die PHP-Community sehr schlecht programmiert hat!
Ich weiß nicht was ich jetzt tun soll, denn mein Hoster will für die alte PHP-Nutzung pro Monat 8 Euro von mir haben, was bislang immer kostenlos war.
Wenn ich nicht zahle laufen meine Homepages nicht mehr! Das ist wirklich frech vom Hoster (Strato), wo ich bisher immer zufrieden war, aber jetzt nicht mehr, leider.
Hi Anja-Elisa,
das tut mir Leid zu lesen. Teilweise kommt es zu Inkompatibilitäten, das stimmt natürlich. Dass die alten PHP-Versionen aus dem Programm genommen werden, rührt daher, dass diese keine Sicherheitsrelevanten Updates mehr erfahren. Sie sind schlichtweg ausgelaufen oder am End-Of-Life. Preislich sind 8 Euro natürlich eine Hausnummer, gemessen an deren regulären Preisen.
Wir bieten weiterhin auch Hosting mit alten PHP-Versionen an, falls das interessant für dich sein könnte.
Was ich dir in jedem Fall empfehlen würde, ist unser Demo-Umzug unter: https://www.hostpress.de/demo-umzug/
Der liebe Nick testet sicher gerne und kostenlos, ob nicht doch eine der aktuellen PHP-Versionen kompatibel ist, oder gibt dir Tipps, was du tun könntest.
Wir wünschen dir viel Erfolg!
Johannes
Hallo Johannes, danke für die Anteilnahme 😉
Es gibt ein Plugin namens: „PHP Compatibility Checker“ und damit kann ich meine Website bei Wordpress testen auf Kompatibilität für PHP 7.4, was als Ergebnis positiv ausfile. So ein Plugin suche ich jetzt für prüfen für PHP 8.0, finde aber keines.
Einen Umzug meiner Domains möchte ich erstmal nicht vonehmen.
Ja stimmt, PHP ist sicherer und schneller… aber leider nützt mir das bislang nichts. Oft ist es so in der Informatikwelt, dass bei einer Neuerung Altes nicht mehr funktioniert. Das erlebe ich in meiner über 20-Jährigen Computerzeit immer mal zum Leidwesen wieder ….
In der IT-Welt haben wir es einfach mit einem komplexen und verwobenen System verschiedenster Komponenten zu tun. Klar. das kann durchaus sehr ärgerlich sein, ist aber einfach dem notwendigen Fortschritt geschuldet.
Dadurch dass PHP mit 8.0 restriktiver geworden ist, konnte andererseits ein Plus an Performance und Sicherheit erzielt werden.
Was ich dir noch empfehlen kann, ist, deine Plugins zu durchkämmen. Bspw. über das WordPress Backend gibt es dort den Link „Details“. Damit kommst du auf die Plugin-Seite, wo du dann die erforderliche PHP-Version findest. Wenn dort steht „bis 7.4“, hast du schon mal einen Übeltäter ausgemacht. Viel Erfolg!