PHP 7.3 - wann macht ein Wechsel Sinn?
Für unsere Kunden steht nun PHP 7.3 zur Verfügung. Wir haben die Vorteile von PHP 7.3 recherchiert und klären im Beitrag, wann ein Wechsel auf PHP 7.3 im E-Commerce 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 PHP-Benchmark. 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. 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.
Software | Kompatibilität | Anmerkung |
---|---|---|
Contao | kompatibel | |
Drupal | kompatibel | Ab Drupal 8.6.4 wird PHP 7.3 unterstützt. |
Oxid | nicht kompatibel | |
Magento | kompatibel | Ab Version Magento 2.3.3 ist PHP 7.3 kompatibel. |
Matomo (Piwik) | nicht kompatibel | |
Shopware | kompatibel | Shopware 5.6.x und 6.0 sind mit PHP 7.3 kompatibel. |
Typo3 | kompatibel | Typo3 unterstützt PHP 7.3 ab der Version 9. |
WooCommerce | kompatibel | |
WordPress | kompatibel | WordPress ist ab Version 5.0 mit PHP 7.3 kompatibel. |
Xt:commerce | nicht kompatibel |
Magento und PHP 7.3
Aktuell wird PHP 7.3 nur von Magento 2 unterstützt und zwar ab Version 2.3.3. Magento 1 hingegen ist nicht mit PHP 7.3 kompatibel.
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
Ab Version Shopware 5.6 und Shopware 6.0 wird PHP 7.3 unterstützt. Dies wurde auf dem Shopware Community Day bekannt gegeben.
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.
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 von Shopware 5.6 und Shopware 6, Magento 2 ab Version 2.3.3 oder 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.
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. PHP 7.2 erfährt noch bis Ende 2020 Sicherheitsupdates.