Der Release von PHP 7 und Shopware

Elf Jahre ist es mittlerweile her, dass mit PHP 5 der letzte Major Release zur Verfügung gestellt wurde. Nach einer Last-Minute Verspätung, ursprünglich war der November als Release geplant, ist nun PHP 7 endlich da und scheint allen Erwartungen gerecht werden zu können. Wir gehen auf die Neuerungen ein und was das Update für Shopware bedeutet.


Details zu PHP 7

Man kann durchaus von „einer neuen Zeitrechnung für die Skriptsprache“ (heise.de) sprechen: Die neue Version 7 bringt rund 10.000 Änderungen gegenüber der 5er Version mit sich. Nach der Totgeburt PHP 6, die es nicht einmal bis zum Release geschafft hat, verspricht PHP 7 dem Hersteller zufolge bis zu 14-mal schnellere Performance. Hinzu kommen überfällige Features wie 64-Bit Support und die rundum überarbeitete Zend-Engine. Doch gehen wir auf die wesentlichen Neuerungen etwas im Detail ein.

Neue Features von PHP 7

Ein Grund für den enormen Performance Anstieg ist die neue Engine PHPNG. Gegenüber PHP 5.6 können etwa 80% mehr Requests in der Sekunde verarbeitet werden, gegenüber dem vorherigen Spitzenreiter HHVM 3.7 (Facebooks HipHop Virtual Machine) immer noch 30% mehr. Und in Hinblick auf WordPress 4.1.1, verarbeitet Version 7 im Vergleich zu 5.6 mehr als doppelt so viele Anfragen pro Sekunde.

Vor allem für kleinere Hosts oder Websites stellt das eine wesentliche Verbesserung dar, weil nun mit der gleichen Hardware mehr Traffic gehandelt werden kann.

Diese deutliche Leistungssteigerung wäre alleine schon fast Grund genug für einen Umstieg, doch PHP 7 kann noch mehr. Zum einen wird für Programmiere nun eine ausreichende Unterstützung für Unicode. Diese Unterstützung war bereits für PHP 6 angestrebt, konnte jedoch nicht zufriedenstellend umgesetzt werden.

Darüber hinaus gibt es neue Operatoren, wie beispielsweise den Drei-Wege-Vergleichsoperator (<=>) – auch Spaceship genannt – und den Null Coalesce Operator (??), um auch komplexere Algorithmen möglichst kompakt formulieren zu können.

Eine weitere praktische Neuerung ist die Verwendung von Type Hints für die skalaren Variablen Int, Float, String und Bool. Das bedeutet, dass Typen standardmäßig erst einmal „non-strict“ gehandhabt werden. Gibt man nun einen int(1) in eine Funktion, die einen float benötigt, wird er automatisch zu einem float(1.0).

Des Weiteren ist für alle Variablen ebenfalls die interne Datenstruktur überarbeiten worden. Referenzzählungen gehören der Vergangenheit an und die Implementierung von Arrays wurde optimiert, sodass wesentlich weniger Speicher benötigt wird.

Was ist bei einem Upgrade auf PHP 7 zu beachten?

Wie bereits erwähnt, bringt ein Update einen immensen Gewinn in Sachen Performance und Geschwindigkeit mit sich.

Darüber hinaus gilt es zu beachten, dass die bis zuletzt aktuelle Version PHP 5.6 nur noch bis zum 28.08.2016 mit Updates bedacht wird, bevor sie den Security-only-Status erhält. Aufgrund der vorhandenen Abwärtskompatibilität, sollte ein Umstieg keine allzu große Hürde darstellen. Dennoch empfiehlt es sich, das Upgrade zunächst durch das Aufsetzen einer Testumgebung auf Fehler zu überprüfen.

Außerdem sollte beachtet werden, dass bei einem Update die mysql-Funktionen wegfallen. Jedoch können diese mit einem kleineren Eingriff wieder in PHP 7 integriert werden. Dadurch können ebenfalls Legacy-Applikationen einen Vorteil aus dem Update ziehen.

Die Entwickler von WordPress sind beständig darum bemüht, hohe Kompatibilität und einen guten Übergang bei dem Update auf die neue PHP Version zu ermöglichen. Problematisch ist nämlich zur Zeit, dass viele Themes und Plugins noch nicht bereit und aufwärtskompatibel zur neuen Version sind. Vor einem Upgrade sollte deshalb unbedingt ein Update mit allen verwendeten Plugins und Themes durchgeführt werden.

Auswirkungen von PHP 7 auf Shopware

Für Shopware und deren Nutzer ist das PHP-Update ebenfalls ein großer Schritt. So fallen ältere API weg und Sicherheitsrisiken werden beseitigt. Alte Shopsysteme, die mit PHP 4 entwickelt wurden und aktuell nicht 5.x kompatibel sind, werden auch in Zukunft nicht für PHP 7 geeignet sein und sollten in naher Zukunft dringend angepasst und komplett umgestellt werden. Alle neueren Shop-Systeme sind ohne Weiteres kompatibel.

Doch wie bereits erwähnt entfällt seitens PHP der Support für ältere Releases. Bei Shopware sieht es ähnlich aus, mit dem nächsten Minor-Release (Shopware 5.2) wird der Support für PHP 5.4 eingestellt. Bis zum nächsten Minor-Release sollte als Entwickler deshalb noch darauf geachtet werden, dass Plugins sowohl 5.4 als auch 7 kompatibel sind.

In Hinblick auf Plugins als Shopbetreiber gilt es, ähnlich wie auch bei WordPress, darauf zu achten, dass alle Plugins vor einem Umstieg auf die neue Version auf dem aktuellsten Stand sind, damit der Umstieg so wenig Probleme wie möglich macht.

Und selbstverständlich profitieren auch Shopware Onlineshops von den zuvor erwähnten Performance-Vorteilen. Während beispielsweise der Theme Cache in PHP 5.6 noch rund 5 Sekunden benötigt um erstellt zu werden, sind es mit PHP 7 nur noch etwa 2 Sekunden. Auch bei anderen Prozessen ergeben sich Leistungsvorteile von bis zu 30%.

Ein Wechsel ist folglich nicht nur lohnenswert sondern langfristig auch unumgänglich, wenn man mit den Wettbewerbern Schritt halten möchte.