PHP 8.2 ist unterwegs - das neue Minor Release steht in den Startlöchern

Das neue Update zu PHP 8.2
JohannaVon Johanna|9. November 2022

Diese Veränderungen kommen nach dem End of Life von PHP 7

Am 28. November 2022 endet der Support der letzten PHP 7 Version – PHP 7.4. Ohne viel Verzögerung wird schon am 08. Dezember 2022 das neue PHP 8.2 Version veröffentlicht. Der ursprüngliche Termin, der 24. November, wurde in den letzten Zügen noch einmal verschoben. Das neue Update baut auf den noch aktuellen PHP Versionen PHP 8.0 und PHP 8.1 auf. Da der inhaltliche Umfang des Releases natürlich recht groß ist, haben wir unseren Entwickler Alex und PHP Experte Adrian nach den wichtigsten Veränderungen gefragt.

 

Wenn du dich noch einmal genauer mit PHP beschäftigen möchtest, kannst du hier nachlesen, was PHP eigentlich ist und wie es verwendet wird. Mehr Informationen zur Migration von PHP 81. auf PHP 8.2 findest du auch direkt bei PHP. Aus unserem Support-Team haben wir das Feedback bekommen, dass es bei derUmstellung von PHP aktuell immer wieder zu Problemen kommt, da nicht alle Plugins mit der neuen PHP-Version kompatibel sind! Hier können wir euch auch nochmal empfehlen, eure Plugins regelmäßig zu aktualisieren, um Problemen und Fehlern vorzubeugen.

 

Jetzt gibt es hier aber die interessantesten und wichtigsten Updates zum neuen Release im Überblick.

1. Was ist eigentlich ein Minor Release?

Meistens hört man bei neuen Updates und Release-Daten von einem Major Update. Aber was ist eigentlich ein Minor Release? Ein Minor Release ist wie PHP 8.2 ein Versionsupdate, welches kleiner ist als ein Major Update, wie beispielsweise PHP 8.0. Dabei handelt es sich meist um funktionale Erweiterungen und Fehlerbehebungen, die einzelne Tools oder Veränderungen enthalten. Während ein Major Release umfangreiche Funktionen und Veränderungen an der Systemarchitektur beinhalten.

Das Minor Release ist sozusagen ein kleines Update mit zwischen den großen Hauptversionen. Es bleibt aber genauso wichtig, um wiederkehrende Fehler regelmäßig einzudämmen und die Benutzerfreundlichkeit beibehalten zu können.

2. PHP 8.2 – diese Neuerungen werden erwartet

PHP 8.2 ist ein Minor Release und weist somit auf die kommende neue Hauptversion PHP 9.0 hin, bei der schließlich veraltete, sog. deprecated, Elemente entfernt werden. Am eigentlichen Releasetag präsentieren die PHP-Experten den aktuellen Stand und erklären im Rahmen der betterCode() PHP, wie mit den Neuerungen zu arbeiten ist.

Diese Konferenz stellt das PHP Best Practices in den Vordergrund, bei dem die Performance, Lean PHP, Frameworks und vieles mehr bis hin zur Sicherheit getestet und diskutiert werden. Dabei werden bei kritischen Punkten auch Lösungen, die sich in der Praxis von PHP bewährt haben, diskutiert und vorgeführt.

 

Diese Änderungen werden unter anderem mit dem neuen PHP 8.2 Update eingeführt

Neue Funktionen

  • Erlaubt null und false als eigenständige Typen
  • Unterstützung der Schwärzung sensibler Parameterwerte
  • Neue Funktion openssl_cipher_key_length
  • Neue INI-Einstellung error_log_mode zum Festlegen der Berechtigungen für die Fehlerprotokolldatei
  • OpenSSL: Neue Funktion openssl_cipher_key_length
  • Neue Funktion curl_upkeep
  • Neue Funktion ini_parse_quantity
  • Neue Funktion memory_reset_peak_usage

 

Änderungen der Funktionalität

  • INI-Parsing-Warnungen
  • ksort(…, SORT_REGULAR) ändert die ändert Sortierreihenfolge

 

Veraltete Eigenschaften

  • Mbstring: Base64-, Uuencode-, QPrint- und HTML-Entity-Kodierungen sind veraltet

3. PHP 8.2 – Verbesserung der Random Extension

PHP 8.2 führt mit dem Update eine Erweiterung namens “random” ein, welche die bestehenden PHP-Funktionen zur Erzeugung von Zufallszahlen organisieren und vereinheitlichen soll. Dabei sollen eine Reihe von PHP-Klassenstrukturen und Ausnahmeklassen eingeführt werden, um eine bestimmte Auswahl des Zufallszahlengenerators und der Ausnahmebehandlung zu ermöglichen. Der ursprüngliche PHP-Zufallszahlengenerator ist zwar immer noch im Basiscode enthalten, jedoch eignet er sich nicht für kryptografische Zwecke. Daher bringt uns PHP 8.2 Update schließlich einen völlig neuen Zufallsgenerator.

Allerdings gibt es bei PHP 8.2 durch die Zufallserweiterung keine Möglichkeit mehr, diese zu deaktivieren, da die Zufallserweiterung mit PHP gebündelt und es somit keine Konfigurationsoption zur Kompilier- oder Laufzeit mehr gibt.

 

Nach Angaben von PHP wurden einige Veränderungen an der bestehenden Funktionalität der Zufallsgenerierung vorgenommen, die nun keine Probleme mehr mit der Rückwärtskompatibilität zwischen den bestehenden PHP-Versionen verursachen sollten. 

 

💡 Einfach erklärt bedeutet das, dass Zufallszahlen nun sehr viel mehr zufällig und schneller erstellt werden.


Adrians Einschätzung zum PHP 8.2 Release

PHP 8.2 bietet mehr neue Funktionen als bestehende, die deaktiviert wurden. Daher ist der Wechsel von PHP 8.2 auf das neue System auch mit deutlich weniger Arbeit verbunden, als seinerzeit der Switch von PHP 7 auf PHP 8. Insgesamt handelt es sich hierbei eher um ein evolutionäre Verbesserung, als um eine revolutionäre Veränderung. Lasst uns gespannt sein, was die nächsten Updates an Veränderungen mit sich bringen.


Adrian, Technik & Support

4. Neue mysqli Funktionen und Methoden für PHP 8.2

mysqli bereitet eine SQL-Anweisung vor, bindet die Parameter und führt die Anweisung aus.
Mit dem neuen Update auf PHP 8.2 gibt es auch eine Erweiterung mit der neuen Funktionen “mysqli_execute_query” und der Methode “mysqli::execute_query”. Diese bieten nun einen einfacheren Ansatz zum Vorbereiten, Binden, Ausführen und Abrufen von Ergebnissen einer SQL-Anfrage.

 

Die beiden neuen Funktionen akzeptieren eine SQL-Abfrage, diese wird vorbereitet, gebunden und innerhalb der Funktion ausgeführt. Bei einer erfolgreichen Abfrage wird ein “mysqli_result-Objekt” oder ein “false” zurückgegeben, sofern eine Abfrage nicht erfolgreich war.

 

In vereinfachter Form sind die „mysqli_execute_query“ und „mysqli::execute_query“ also Abkürzungen für die Aufrufe mysqli::prepare(), mysqli_stmt::bind_param(), mysqli_stmt::execute und mysqli_stmt::get_result().

 

💡 Einfach erklärt bedeutet das, dass es bei einem PHP Update, mit einem veralteten Plugin, zu Fehlern bei der Verbindung zur Datenbank kommen kann. Gleichzeitig kann das neue mysqli Webseitenaufrufe bei Online-Shops wie WooCommerce deutlich schneller machen.

mysqli als Beispiel für das neue PHP 8.2 Update
Die neue Funktion "mysqli_execute_query" vereinfacht den vorhandenen Code.

5. Veraltet für PHP 8.2 – utf8_encode und utf8_decode

Bei einem neuen Release gibt es nicht immer nur neue Funktionen, manchmal werden auch fehlerhafte und alte Funktionen aus dem Programm von PHP genommen. So auch die Funktionen “utf8_encode” und “utf8_decode”. Obwohl die Funktionen in der PHP Standardbibliothek enthalten sind, können diese nicht verwendet werden, um Zeichenkodierungen wie Windows-1252, UTF-16 und UTF-32 zu erkennen und in UTF-8 zu konvertieren. Die Übergabe eines Textes an die Funktion “utf8_encode” ist anfällig für Fehler, wodurch unerwünschte Ergebnisse auftreten können.
Die beiden Funktionen werden zur Konvertierung von Zeichenketten zwischen den Kodierungen ISO-8859-1 (auch bekannt als „Latin 1“) und UTF-8 verwendet. Diese versuchen allerdings nicht, die Zeichenkodierungen des vorhandenen Textes zu erkennen, sondern konvertieren immer zwischen ISO-8859-1 und UTF-8, auch wenn der Quelltext nicht in ISO-8859-1 vorhanden ist.

 

💡 Einfach erklärt
Häufige Beispiele von Fehlern kann unter anderem die Darstellung des Euro-Zeichens („€“) sein, wenn dieses als utf8_encode an die Funktion utf8_encode übergeben wird und in der Textausgabe als “⬔ ausgespielt wird.
Genauso das deutsche Eszett-Zeichen („ß“) wenn es durch utf8_encode übergeben wird, wird dieses als “Ô dargestellt.

 

Die fehlerhafte Verwendung der Funktionen „utf8_encode“ und „utf8_decode“ wird im Update zu PHP 8.2 mit einem Verwerfungshinweis versehen und im neuen Update zu PHP 9.0 schließlich entfernt.

6. Fazit

Die Liste an Veränderungen bei neuen Major Releases und Versionsupdates sind meist recht lang und vor allem nicht immer direkt greifbar – gerade bei so komplexen Themen wie PHP. Für richtige PHP-Nutzer finden unsere IT Spezialisten die random Extension, die neuen mysqli Funktionen und die Entfernung der alten encode Versionen bei PHP 8.2 besonders interessant.

Wir sind schon jetzt ganz gespannt auf die PHP Major Version 9.0, die voraussichtlich 2023 veröffentlicht wird.