PHP 7.3 - wann macht ein Wechsel Sinn?

SoftwareNeues Feature
Jonas Hünig

Für unsere Kunden steht nun PHP 7.3 zur Verfügung. Während die meisten CMS-Systeme bereits mit PHP 7.3 kompatibel sind, müssen sich Shopware- und Magento-Nutzer noch gedulden. Wir haben die Vorteile von PHP 7.3 recherchiert und klären im Beitrag, wann ein Wechsel auf PHP 7.3 im eCommerce sinnvoll ist.

Was ist neu bei PHP 7.3?

PHP 7.3 bietet wieder einige Optimierungen und Erweiterungen im Vergleich zur Vorgängerversion PHP 7.2.

Neu sind unter anderem diese Features:

  • Flexible Heredoc- und Nowdoc-Syntax
    Durch die flexiblere Gestaltung der Syntax für Heredoc und Nowdoc ist es möglich, die Herdoc-/Nowdoc-Endmarkierungen einzurücken. Ein Zeilenumbruch ist nicht mehr nötig.
     <?php
     class foo {
          public $bar = <<<EOT
          bar
          EOT;
     }


  • PCRE2-Migration
    Die Regex-Bibliothek wurde zu PCRE2 (Perl Compatible Regular Expression) migriert. Dadurch wird der PHP-Core auf die neuen Standards von PCRE2 gebracht.
  • JSON_THROW_ON_ERROR
    Die bisherige Behandlung von JSON-Fehlern war oftmals sehr kompliziert, da Fehler nur über die Funktion json_last_error() zur Verfügung standen. Mit der Option-Konstante JSON_THROW_ON_ERROR ist es möglich, dass die JSON-Funktionen json_encode() und json_decode() eine PHP-Exception erzeugen, wenn die zu parsenden JSON-Daten fehlerhaft sind. Dadurch wird die Fehlerbehandlung deutlich vereinfacht und präzisiert, weil Fehler nicht mehr anhand des mehrdeutigen Rückgabewertes geprüft werden müssen. Die neue Exception muss über diese Option explizit aktiviert werden, sodass bisherige Anwendungen größtenteils kompatibel bleiben.
  • Komma am Ende von Parametern in Funktionsaufrufen
    Mit PHP 7.3 ist es möglich, dass der letzte Parameter eines Funktionsaufrufes mit einem nachgestellten Komma endet. Zuvor hat ein nachstehendes Komma zu einem Fehler geführt. Dies ist hauptsächlich eine Erleichterung für die Ansichten von Versionsunterschieden in VCS wie Git. Hier lässt sich z.B. beim Hinzufügen eines Parameters am Ende der Unterschied in einer Zeile statt zwei Zeilen darstellen. Das Verhalten gleicht sich außerdem an die Definition von Arrays an, bei denen das sogenannte Trailing Comma bereits lange möglich ist.
     myfunction(
          "Fuu",
          "Bar",
          "FuBar",
     );


  • Same Site Cookie
    Mit den "Same Site Cookies" kann das Risiko von CSRF- (Cross Site Request Forgery) und Information Leakage-Angriffen verringert werden. Denn damit können die Server festlegen, dass ein bestimmtes Cookie nur mit Anfragen gesendet werden kann, die von der derselben Domain stammen. Während es bisher schon mit einigen PHP-Frameworks möglich war, mithilfe von Headern die Cookies auf eine Domain zu begrenzen, ist dies mit PHP 7.3 nun ein offizielles Core-Feature.
    Weitere Informationen zu den Features finden Sie auf Wiki-PHP.

Kann die Performance durch PHP 7.3 gesteigert werden?

Diese Frage lässt sich deutlich mit "ja" beantworten.

Phoronix hat PHP 7.3 ausgiebig getestet und ist zu dem Ergebnis gekommen, dass PHP 7.3 um 10 % schneller ist als PHP 7.2 im PHPBench. Außerdem ist es um 31% schneller als PHP 7.0 und bearbeitet Requests fast 3-mal so schnell wie PHP 5.

PHP-Benchmark von Phoronix

PHP-Benchmark von Phoronix. Quelle: phoronix.com, 2019

Insgesamt bietet dieses PHP-Upgrade Vorteile für die Performance von Onlineshops. Ladezeiten verkürzen sich, wodurch die Conversion gesteigert werden kann und Ressourcen eingespart werden können.

Kompatibilität von Anwendungen mit PHP 7.3

Bevor Sie Ihre PHP-Version aktualisieren, sollten Sie überprüfen, ob die neue Version vollständig mit allen Komponenten kompatibel ist. 

In der Tabelle zeigen wir, welche Anwendungen mit PHP 7.3 bereits kompatibel sind.

SoftwareKompatibilitätAnmerkung
Contaokompatibel
DrupalkompatibelAb Drupal 8.6.4 wird PHP 7.3 unterstützt.
Oxidnicht kompatibel
Magentonicht kompatibelSiehe hierzu Absatz: Magento und PHP 7.3.
Matomo (Piwik)nicht kompatibel
Shopwarenicht kompatibelShopware wird ab Version 5.6 und 6.0 mit PHP 7.3 kompatibel sein.
Typo3kompatibelTypo3 unterstützt PHP 7.3 ab der Version 9.
WooCommercekompatibel
WordPresskompatibelWordPress ist ab Version 5.0 mit PHP 7.3 kompatibel.
Xt:commercenicht kompatibel

Magento und PHP 7.3

Aktuell wird PHP 7.3 weder von Magento 1 noch von Magento 2 unterstützt. Sobald Patches und Updates zum Support von PHP 7.3 durch Magento verfügbar sind oder auch Patches anderer Anbieter, wie etwa Inchoo, aktualisieren wir diesen Blogbeitrag.

Wichtig: Magento 1 erfährt allerdings nur noch bis Juni 2020 Sicherheitsupdates. Für diesen Termin ist das offizielle End-of-Life für Magento 1 angekündigt. 

Shopware

Laut der Shopware Roadmap werden die Versionen Shopware 5.6 und 6.0, die im Juli 2019 released werden, PHP 7.3 unterstützen. Dies wurde auf dem Shopware Community Day bekannt gegeben. Erfahren Sie hier mehr über den SCD19 und die neuen Versionen.

WordPress, WooCommerce, Typo3 und Drupal

Die Content Management Systeme WordPress, WooCommerce, Typo3 und Drupal sind mit PHP 7.3 bereits kompatibel. WordPress unterstützt PHP 7.3 bereits ab Version 5.0. Typo3 ist ab Version 9 und Drupal ab Version 8.6.4 mit der neuen PHP-Version kompatibel.  

PHP 7.3 bei maxcluster einrichten

PHP 7.3 steht auf allen unseren Ubuntu 18.04 und Debian 8-Clustern zur Verfügung. Um PHP 7.3 zu verwenden, genügt es, die PHP-Version für den vHosts zu aktivieren. Dieser Vorgang lässt sich wieder rückgängig machen, sollte die eingesetzte Anwendung Probleme mit der neuen Version haben. 

PHP 7.3 für einen vHost bei maxcluster aktivieren

PHP 7.3 für einen vHost bei maxcluster aktivieren

Sollten Sie noch einen unserer älteren Debian-Cluster nutzen und PHP 7.3 verwenden wollen, prüfen wir gerne die Möglichkeit, auf einen Ubuntu 18.04-Cluster zu wechseln. Bitte kontaktieren Sie hierzu unseren Support. Unser Team unterstützt Sie gern auch bei Fragen und Problemen via E-Mail an support@maxcluster.de oder telefonisch unter 05251/41 41 30.

Fazit: Wann macht ein Wechsel auf PHP 7.3 Sinn?

Die neue PHP-Version ist wesentlich performanter als alle bisherigen Versionen und kann Requests um 10 % schneller bearbeiten als PHP 7.2. Zum gegenwärtigen Zeitpunkt sind allerdings nicht alle Anwendungen bzw. Shopsysteme kompatibel mit PHP 7.3. Ein Wechsel auf PHP 7.3 macht deswegen gegenwärtig nur für die Nutzer der CMS-Systeme WordPress (ab Version 5) und WooCommerce, Typo3 (ab Version 9) sowie Drupal (ab Version 8.6.4) Sinn. Diese Systeme sind bereits in den genannten Versionen kompatibel.

Die Nutzer von Shopware und Magento müssen sich noch etwas gedulden. Für Shopware steht bereits fest, dass mit Version Shopware 5.6 und Shopware 6.0 die neue PHP-Version unterstützt wird. Beide Versionen sind ab Juli 2019 verfügbar. Magento ist noch nicht kompatibel mit PHP 7.3. Hier ist ein möglicher Patch noch nicht angekündigt. Über Updates und mögliche Patches informieren wir Sie in diesem Beitrag zeitnah.

PHP 5 und PHP 7.0 erhalten seit dem 31.12.2018 keine Sicherheitsupdates mehr. Aus diesem Grunde sollte mindestens die Version PHP 7.1 genutzt werden, die zumindest noch bis Dezember 2019 Sicherheitsupdates erfährt. Empfehlenswerter ist allerdings die Nutzung von PHP 7.2, da diese Version mehr Performance bietet als 7.1 und das End-of-Life erst für Dezember 2020 geplant ist.