PHP und Magento 2

PHP steht für „PHP: Hypertext Preprocessor“ und ist eine beliebte Open-Source-Programmiersprache. PHP läuft auf dem Webserver des Shops, also nicht in den Web-Browsern der UserInnen. PHP-Code soll und darf deswegen für die BesucherInnen einer Website nicht sichtbar sein.

Welche Rolle spielt PHP für Magento 2?

Kurz gesagt: Magento 2 würde ohne PHP-Code nicht existieren. Der Programm-Code von Magento 2 besteht zu großen Teilen aus PHP. Die Anwendungslogik/Geschäftslogik des Webshops und alle Lese- und Schreibvorgänge für die Daten (Produkte, Kategorien, Kunden, Bestellungen, …) und vieles mehr sind in dieser Sprache geschrieben.

Manchmal liest man Aussagen wie „Magento 3 wird in JavaScript geschrieben“. Das ist aber nur als Witz gemeint. (Prinzipiell kann man eine Shop-Software wie Magento auch in anderen Sprachen schreiben, aber der Aufwand um den Code umzuschreiben würde zum aktuellen Zeitpunkt in keiner Relation zum Nutzen stehen.)

Welche PHP-Versionen unterstützt Magento 2?

Die folgende Tabelle listet auf, welche Version von Magento mit welcher PHP-Version kompatibel ist:

Magento-VersionPHP ~7.0.13PHP ~7.1.0PHP ~7.1.3PHP ~7.2.0PHP ~7.3.0PHP ~7.4.0PHP ~8.0.0PHP ~8.1.0PHP ~8.2.0
2.2.5 - 2.2.9JaJaJaNeinNeinNeinNeinNeinNein
2.2.10JaJaJaJaNeinNeinNeinNeinNein
2.3.0 - 2.3.2-p2NeinNeinJaJaNeinNeinNeinNeinNein
2.3.3 - 2.3.6NeinNeinJaJaJaNeinNeinNeinNein
2.3.7NeinNeinNeinNeinJaJaNeinNeinNein
2.4.0 - 2.4.3NeinNeinNeinNeinJaJaNeinNeinNein
2.4.4 - 2.4.5NeinNeinNeinNeinNeinJaNeinJaNein
2.4.6 und neuerNeinNeinNeinNeinNeinNeinNeinJaJa

Das sind die offiziellen Informationen aus den Composer-Files. Die Tilde, das „~“, steht für alle Bugfix-PHP-Versionen größer gleich der angebenen Version. ~7.1.0 steht also für 7.1.2 oder 7.2.12, aber nicht für PHP 7.2.0.

Hinweis

In der EntwicklerInnen-Dokumentation gibt es diese Aufstellung der System-Anforderungen mit abweichenden PHP-Versionen. Laut Information werden nur diese Versionen offiziell unterstützt.

Magento 2.2.10 brachte die Unterstützung von PHP 7.2, gerade noch rechtzeitig zum „End of Life“ der 2.2.x-Serie. (Laut Dokumentation unterstützt dieses Release PHP 7.0 nicht mehr. Die Composer-Requirement erlauben die Version aber weiterhin.)

Mit Magento 2.3.3 wurde die Kompatibilität für PHP 7.3 eingeführt.

Magento 2.4.0 schließlich brachte den Support von PHP 7.4. Der Support für PHP 7.4 wird mit Magento 2.3.7 auch für die 2.3.x-Serie nachgezogen.

Mit Magento 2.4.4 erhalten wir die Kompatibilität für PHP 8.1.

Eine alternative Ansicht dieser Informationen findet du in diesem GitHub-Repository.

Wie lange die PHP-Versionen vom PHP-Team gewartet werden, finden Sie auf der Seite „PHP: Supported Versions„. Mehr zu diesem Thema im nächsten Abschnitt.

Updates der PHP-Version

Das PHP-Team veröffentlicht in regelmäßigen Abständen neue Sprachversionen von PHP. Für eine gewisse Zeit werden alte Versionen noch mit (Sicherheits-)Updates versorgt, aber irgendwann wird der Support eingestellt (siehe End of Life von PHP-Versionen).

Manchmal hebt ein Update von Magento daher auch die minimal unterstützte PHP-Version an. Alte PHP-Versionen, die nicht mehr sicher sind werden nicht mehr unterstützt. Stattdessen kann man die Vorteile neuer Sprach-Features in modernen PHP-Versionen nutzen.

Empfehlung zum Update der PHP-Version

Bisher hat eine Magento-Version immer zwei PHP-Versionen unterstützt. Nutzen Sie das, um das Risiko bei einem Update zu minimieren: aktualisieren Sie entweder die Magento- oder die PHP-Version, aber nicht beides gleichzeitig. Treten nach einem Update Probleme aus, so können Sie leichter herausfinden, wo es hakt.

Wenn Sie von einer sehr alten Magento- oder PHP-Version updaten, kann es bei dieser Vorgehensweise passieren dass Sie das Update in mehreren Schritten durchführen müssen. Vielleicht empfinden Sie das als ärgerlich, weil dadurch mehrfacher Testaufwand auffällt, sofern nicht alle Features automatisiert getestet werden (was selten der Fall ist).

In diesem Fall müssen Sie abwägen:

Nehmen Sie lieber das Risiko in Kauf, führen mehrere Updates in einem durch und investieren Zeit in die nachträgliche Fehlersuche? Sie sind schneller auf der neuen Version, wahrscheinlich bekommen aber Ihre KundInnen von Problemen auch etwas mit.

Oder investieren Sie die Zeit in einzelne Update-Schritte? Ursachen für Probleme werden in der Regel so schneller gefunden und viele Fehler kommen erst gar nicht bei den BesucherInnen an. Dafür haben Sie für die neueste Version eine langsamere „Time to market“.

Weitere Informationen zu PHP

Über PHP wurden so viele Bücher geschrieben, da will ich gar nicht weiter ins Detail gehen.

Wenn Sie mehr zu PHP wissen möchten, lege ich Ihnen als ersten Anhaltspunkt diese Links an’s Herz: