Läuft mein Code auch in PHP 5.4 oder 5.5?
Kommentare

Die US-amerikanische Entwicklerschmiede The Nerdery hat sich schon öfter mit dem Problem konfrontiert gesehen, alten PHP-Code teilweise noch in Versionen 5.1 fit für das aktuelle Jahrzehnt zu machen. Besonders Performance, Speicher-Ersparnis und Sicherheit der neuen PHP-Versionen sind Argumente, mit denen das Team um Jansen Price, den Autor des jüngsten Blog-Eintrages, zu Updates motiviert werden. Nun teilt er Tipps darüber, wie man seine alte Code-Basis darauf hin überprüft, ob sie mit den jüngeren Runtime Engines noch kompatibel ist.

Dazu listet Price zunächst die Abwärtskompatibilität-brechenden Änderungen zwischen PHP 5.3 und 5.4 auf, zu denen entfernte Features gehören wie den Magic Quotes, dem safe_mode, register_globals, define_syslog_variables, import_request_variables, session_is_registered, session_register, session_unregister, und einigen mysqli_-Funktionen. Weitere Details entnimmt man am besten dem offiziellen PHP-Manual. Die Liste der brechenden Änderungen zu PHP 5.5 ist im Übrigen ungleich kürzer. Zusätzliche Migration Guides zu PHP 5.4 respektive PHP 5.5 liefern weitere Angaben über die notwendigen Änderungen.

Der Upgrade-Vorgang setzt sich leider nicht magisch in Gang, wenn man nur eine Anleitung liest. Jedoch will niemand eine geerbte Code-Basis händisch auf die ganzen BC-Breaks untersuchen. Daher liefert Price noch weitere Ratschläge, wie der Prozess zuverlässig beschleunigt werden kann. Vorausgesetzt wird immer ein Staging Server. Auf dem kann man zunächst seinen bestehenden Code einspielen, die gewünschte PHP-Verison installieren und alle Tests durchlaufen lassen. Der nächste Schritt ist, die Website intensiv praxiszutesten, was sehr lange dauern kann. Bei sämtlichen Fehlermeldungen muss dabei geschaut werden, ob sie auf die obigen BC-Breaks zurückzuführend sind. Falls Fehler auftreten, lässt sich die Code-Basis anhand von PHPCompatibility auf Deprecations und Löschungen in jüngeren PHP-Versionen durchforsten.

PHPCompatibility ist ein Standard für den PHP_CodeSniffer. Letzterer ist Tool, das bis runter zu PHP Verison 5.1.2 lauffähig ist, via PEAR oder Composer installiert werden kann und PHP, JavaScript und CSS professionell auf definierte Coding-Standards hin überprüft. Einer dieser Standards ist also PHPCompatibility, der von Wim Godden auf GitHub bereitgestellt wurde und dort verbessert wird. Nach Angabe einiger Parameter und ein wenig Konfiguration des Sniffers gibt derselbe sehr klar lesbar aus, welche Funktionen konkret ersetzt werden müssen. Price sagt aber auch, dass es sich dabei nur um statische Codeanalyse handelt, also etwa durch Refaktorisierung entstehende Effekte später gesondert getestet werden müssen.

Aufmacherbild: 3d small people – analysis von Shutterstock / Urheberrecht: Art3d

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -