PHP-Upgrade von 7.0 auf 7.3 - was es zu beachten gilt
30. Juli 2019,
Wer einmal eine Reise tut, der kann was erzählen… unsere Reise hat uns auf einen unebenen Weg von PHP 7.0 nach 7.3 geführt. Und folgendes möchten wir darüber erzählen und mit euch teilen:
Facts
- Bereits im Dezember 2018 wurde die aktuellste stabile Version von PHP, die 7.3 released.
- Mit 01.01.2020 läuft der Support für PHP 7.0 aus.
- Der Security Support für PHP 7.3 ist bis 01.01.2022 gegeben.
Migrationsleitfäden
Wer sich für eine Auflistung der neuen Features interessiert, findet in den offiziellen Migrationsleitfäden alle Infos:
- https://secure.php.net/manual/de/migration71.php
- https://secure.php.net/manual/de/migration72.php
- https://secure.php.net/manual/de/migration73.php
Unsere wichtigsten Erkenntnisse
Wichtigste Inkompatibilitäten, die bei Upgrade von bestehenden Projekten Probleme machen können:
- Wird eine User-definierte Methode nicht mit allen Pflicht-Argumenten aufgerufen, wird seit PHP 7.1 eine Error Exception geworfen. Dies war bis PHP 7.0 nur eine Warning.
- Die Type-Conversion im Hintergrund wird abgeschafft: wird eine Variable als String definiert und in weiterer Folge wie ein Array behandelt, wird ein Fatal Error geworfen. Bis PHP 7.0 wurde die String-Variable im Hintergrund in ein Array konvertiert.
- Mit dem jetzigen Timestamp erzeugte DateTime Objekte enthalten jetzt die aktuellen Microsekunden. Bis PHP 7.0 waren diese default 0.
- Die Mcrypt Extension wurde in PHP 7.2 entfernt.
- Die Library für Regular Expressions (verwendet für String-Validierungen) wurde in PHP 7.3 auf die strengere Version PCRE2 erhöht. Dies kann dazu führen, dass bestehende Regular Expressions falsch validieren. Dies ist deshalb problematisch, weil keine Fehler geworfen werden, sondern bestehende Teile der Applikation nach Upgrade sich ganz einfach anders verhalten können. Wichtigste Änderung ist, dass ein Bindestrich in PRCE2 immer escaped werden muss, dies war bisher nicht der Fall.
Aussicht
PHP wird mit den kommenden Versionen strikter, was die Migration von Projekten - geschrieben in älteren PHP-Versionen - immer aufwändiger werden lässt.
Unser Tipp
Warnings beim Entwickeln aktivieren! Dies gibt einen guten Ausblick darauf, was bei bestehenden Applikationen in kommenden Versionen nicht mehr funktionieren wird.
Danke für’s zuhören! Wer die gleiche Reise gemacht hat wie wir, kann jederzeit gerne seine Zusatzinfos platzieren oder Fragen stellen (einfach Mail an uns: office@mediatel.at). Allen anderen: Bon voyage!