Das Entwicklerteam der von Web-Anwendungen am häufigsten genutzten Programmiersprache PHP stellt jedes Jahr gegen Ende November eine neue Version der Programmiersprache bereit.
Heute (25.11.2021) wurde die PHP-Version 8.1 veröffentlicht. Wir haben diese neue PHP-Version bereits auf allen Webservern installiert, so dass Sie sie ab sofort nutzen können.
Änderungen in PHP 8.1
Da es sich bei PHP 8.1 um ein Minor-Release handelt, fallen die nicht zu den Vorgängerversionen abwärtskompatiblen Änderungen eher geringfügig aus. Dennoch kann es bei einigen Web-Anwendungen zu Fehlern bei der Nutzung von PHP 8.1 kommen, die jedoch in den kommenden Wochen und Monaten durch Updates dieser Anwendungen behoben werden sollten.
Eine Änderung, die zu Problemen führen kann, ist die Änderung der Standardeinstellung für die MySQLi-Fehlerbehandlung. Bisher war die Standardeinstellung MYSQLI_REPORT_OFF
, damit wurden eventuelle Fehler nicht abgefangen, und die Programmausführung im Fehlerfall einfach fortgesetzt. In PHP 8.1 ändert sich die Standardeinstellung auf MYSQLI_REPORT_ERROR|MYSQLI_REPORT_STRICT
, damit wird im Fehlerfall eine Exception generiert. Falls diese Exception nicht behandelt wird, können Programme jetzt Fehler anzeigen.
Eine Übersicht über alle Änderungen und Neuerung in PHP 8.1 finden Sie hier.
Neuerungen in PHP 8.1
In PHP 8.1 wurde ein neuer Datentyp für sogenannte Enumerations (enum) hinzugefügt. Eine Enumeration kann eine feste Anzahl an beliebig vorgegebenen Werten annehmen. Eine Enumeration könnte beispielsweise genutzt werden, um die verschiedenen Farben eins Kartenspiels abzubilden:
enum Suit {
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}
Eine wichtige Neuerung sind die sogenannten Fibers, damit können in PHP mehrere Aufgaben nebenläufig ausgeführt werden. Es handelt sich jedoch nicht um echte Parallelität; wird ein Fiber gestartet, so wird das Hauptprogramm angehalten, bis der Fiber unterbrochen oder beendet wird . Dieses Feature richtet sich hauptsächlich an Entwickler von PHP-Frameworks, die damit beispielsweise Event Loops implementieren können.
Eine weitere Neuerung ist der sogenannte Inheritance Cache für OpCache. Bisher wurden Vererbungsbeziehungen zwischen Klassen in OpCache nicht vollständig aufgelöst zwischengespeichert, so dass dies immer zur Laufzeit geschehen musste (Linking). Dieser Vorgang ist relativ aufwändig und verlangsamt den Programmstart. In PHP 8.1 werden Klassen jetzt vollständig gelinkt im OpCache zwischengespeichert, dies führt zu einer Performance-Verbesserung von bis zu 8%.
Verbesserungen in PHP 8.1
Wir konnten in ersten Tests eine Verbesserung der Ausführungsgeschwindigkeit von bis zu 10% im Vergleich zur Vorgängerversion PHP 8.0 feststellen. Durch die Umstellung auf PHP 8.1 kann sich die Seitenladezeit von Web-Anwendungen wie WordPress also etwas verbessern.
PHP 8.1 aktivieren
Sie können PHP 8.1 wie gewohnt entweder über unser Kundenmenü aktivieren, oder per .htaccess-Konfgurationsdatei im gewünschten Anwendungsverzeichnis mittels folgender Direktiven:
AddHandler application/x-httpd-php81 .php
Einschränkungen auf Legacy-Webservern
Beachten Sie bitte, dass Sie PHP 8.1 auf unseren Legacy-Webservern mit Unterstützung für PHP-Versionen älter als PHP 5.6 nicht im vollen Funktionsumfang nutzen können.
Da in PHP 8.1 die Unterstützung für ältere Versionen der Verschlüsselungsbibliothek OpenSSL entfernt wurde, kann dort die OpenSSL-Extension nicht genutzt werden, und es fehlt die Wrapper-Unterstützung für HTTPS und andere verschlüsselte Protokolle.
Von dieser Einschränkung sind nur Kunden und Reseller betroffen, die Hosting-Pakete auf einem Legacy-Webserver gebucht haben, da sie eine ältere PHP-Version als PHP 5.6 benötigen.
PHP 7.4 Security-only-Support
Ab dem 28. November 2021 werden die regulären Entwicklungsarbeiten an der PHP-Version 7.4 eingestellt. Es wird ab dann dann noch für ein weiteres Jahr regelmäßige Updates durch das PHP-Entwicklerteam bei sicherheitsrelevanten Problemen geben, kleinere Fehler werden jedoch nicht mehr behoben.
PHP 7.3 End-of-Life
Ab dem 6. Dezember 2021 wird die Unterstützung der PHP Version 7.3 eingestellt, es wird dann keine weiteren Updates für diese PHP-Version durch das PHP-Entwicklerteam mehr geben. Sie sollten diese PHP-Version daher nach Möglichkeit nicht mehr nutzen. Wir werden jedoch bei schweren sicherheitsrelevanten Problemen zurückportierte Updates aus neueren PHP-Versionen bereitstellen.