Blog

10. Juli 2017

PHP 7.1 – Wann ein Upgrade von 7.0 auf 7.1 Sinn macht

PHP 7.1 Upgrade

[Aktualisiert: 5.10.2018] Sie nutzen PHP 5 oder PHP 7.0? Wann lohnt sich ein Umstieg auf PHP 7.1 für die Betreiber von Onlineshops? Wir klären im Beitrag über Kompatibilitäten auf und erklären, wann ein Umstieg Sinn macht.

In unserem Managed Center bieten wir nun eine Installation der neuesten PHP-Versionen 7.1 und PHP 7.2 an. Vorab sollte genau geprüft werden, in welchen Fällen ein Upgrade möglich ist.

Was ist neu bei PHP 7.1?

PHP 7.1 ist seit Dezember 2016 verfügbar und wird bis Dezember 2019 (EOL) mit Security Updates versorgt. Mit dem Upgrade sind einige Neuerungen hinzugekommen und die Performance hat sich minimal verbessert. Ein Benchmark von Phoronix (siehe Balkendiagramm) zeigt, dass sich die Performance um etwa 4 % Prozent verbessert hat – bei ungefähr gleichem Speicherverbrauch. Andere Benchmarks haben sehr ähnliche Ergebnisse in Bezug auf die Performance erzielt.

 

Wichtige Neuerungen

1. Nullable types:

Beispiel:

function testReturn(): ?string
{
           if(…)
                  return ‚elePHPant‘;
           else
                  return null;

}

Funktionen können Null zurückgeben

2. Neue Array Syntax wie Symmetric array destructuring bzw. Support von „key in list()“:

[$id1, $name1] = $data;

Der obige Code lässt sich nun als Alternative verwenden zu:

list($id1, $name1) = $data;

Außerdem ist das Ganze nun auch mit assoziativen Arrays möglich. Zum Beispiel:

// list() style
list(„id“ => $id1, „name“ => $name1) = $data;
// [] style
[„id“ => $id1, „name“ => $name1] = $data;

3. Multi catch exception handling:

<?php
try
{
          // some code
}
catch (FirstException | SecondException $e)
{
         // handle first and second exceptions
}

4. Unterstützung von negativen string offsets:

<?php
$string = ‚bar‘;
echo „The last character of ‚$string‘ is ‚$string[-1]‘.\n“;

Dies erzeugt die Ausgabe: „The last character of ‚bar‘ is ‚r’“.

Was ist vor einem Upgrade zu beachten?

Bevor Sie Ihre PHP-Version upgraden, sollten Sie die vollständige Kompatibilität Ihrer Anwendung und aller Erweiterungen mit PHP 7.1 sicherstellen. Häufig ist dies nicht der Fall, weil einzelne Komponenten Version 7.1 nicht unterstützen. Im Besonderen ist hier ionCube zu beachten. Mit dem ionCube Loader 10 gibt es zwar seit August 2017 eine Version, welche unter PHP 7.1 und sogar 7.2 lauffähig ist. Dieser kann allerdings nur Dateien entschlüsseln, welche mit dem ionCube Encoder in der Version 10 erstellt wurden. Frühere ionCube Versionen sind mit PHP 7.1 nicht lauffähig. Dadurch ist es nicht in jedem Fall möglich mit ionCube verschlüsselten PHP-Code zu verwenden, welcher zum Beispiel bei zahlreichen Shopware oder vereinzelten Magento Plugins zum Einsatz kommt.

Im Folgenden zeigen wir Ihnen die kompatiblen und nicht kompatiblen Anwendungen auf.

Kompatibilität von Anwendungen mit PHP 7.1

 
Software Kompatibilität Anmerkung
Contao kompatibel Unterstützt PHP 7.1.
Drupal teilweise kompatibel Ab Drupal 8.2.6 wird PHP 7.1 unterstützt.
Oxid kompatibel Oxid unterstützt PHP 7.1 ab der Oxid Version 6.1.0.
Magento teilweise kompatibel Seit dem Patch vom 14. September 2018 ist Magento 1 mit PHP 7.1 und 7.2 kompatibel. Magento 2.0 und 2.1 unterstützen PHP 7.1 nicht. Ab Magento Version 2.2 wird PHP 7.1 unterstützt.
Matomo (Piwik) kompatibel
Shopware teilweise kompatibel Viele der benötigten Plugins werden mit ionCube verschlüsselt und sind damit nicht mit PHP 7.1 kompatibel. Ohne den Einsatz von verschlüsselten Plugins ist Shopware ab Version 5.2 mit PHP 7.1 kompatibel. Ab Version 5.5 sind alle Shopware Plugins quelloffen und damit mit PHP 7.1 kompatibel. Ab Version 5.5 sind alle Shopware Plugins quelloffen.
Typo3 teilweise kompatibel Version 7 und 8 unterstützen beide die neueste PHP-Version.
WooCommerce teilweise kompatibel Ab WooCommerce 3.0 wird PHP 7.1 unterstützt.
WordPress kompatibel WordPress unterstützt PHP 7.1.
Xt:commerce nicht kompatibel Xt:commerce ist ab Version 5.1 mit PHP 7.1 kompatibel.

PHP 7.1 und Magento

Magento 1

Am 14. September 2018 hat Magento 1 den Patch „PHP 7.2 Support“ veröffentlicht, damit Magento 1 mit PHP 7.1 und PHP 7.2 kompatibel ist. Dieser Patch fügt der Magento Installation die mcrypt_compat Bibliothek hinzu und entfernt Inkompatibilitäten im Magento Code.

Wir empfehelen den Patch zu installieren und anstelle von PHP 7.1 direkt PHP 7.2 zu nutzen, da die älteren PHP-Versionen wie 5.6 und 7.0 nur noch bis Dezember 2018 Sicherheitsupdates erhalten. Die Performance wird im Vergleich zu PHP 5 enorm gesteigert.

Sollten Sie PHP 7 mit Plugins von Inchoo nutzen, empfiehlt Inchoo die Plugins zu deinstallieren und stattdessen diesen Magento-Patch zu verwenden. Mehr über Inchoo und die technischen Details des Patches erfahren Sie unter: Magento 1 official PHP 7.2 Patches.

Wichtig: Bitte beachten Sie, dass auch die aktuelle Magento 1 Version 1.9.3.10 den PHP 7.2 Patch noch nicht enthält. Dieser muss nach dem Update separat installiert werden.

Magento 2

Magento 2.0 und 2.1 unterstützen PHP 7.1 überhaupt nicht. Von CoreHacks, die Magento 2 auf PHP 7.1 laufen lassen, raten wir dringend ab.

Sinnvoll wird das Upgrade auf PHP 7.1 bei der neuen Magento 2.2 Version, die im September 2017 erschienen ist. Bei dieser Magento Version werden alle neuen Features vollständig unterstützt. Für alle Nutzer der Magento Version 2.2.x Version empfehlen wir ein Upgrade von 7.0 auf 7.1.

Kompatibilität zu Shopware

Aktuell sind ionCube verschlüsselte Plugins für Shopware nicht kompatibel mit PHP 7.1 (und 7.2). Das liegt daran, dass ionCube 9 zur Verschlüsselung eingesetzt wird, welches nur mit PHP 7.0.x lauffähig ist. Unter dem Einsatz unverschlüsselter Plugins unterstützt Shopware ab Version 5.2 im Kern PHP 7 und ist damit auch mit PHP 7.1 nutzbar. PHP 7.2 ist ab Version 5.3.5 mit Shopware – ohne die Nutzung von ionCube verschlüsselten Plugins – kompatibel.

Ab Version 5.5 sind alle Shopware Plugins quelloffen und damit mit PHP 7.1 und 7.2 kompatibel.

Mehr Informationen zur Kompatibilität finden Sie FAQ von Shopware.

PHP 7.1 bei maxcluster einrichten

Auf allen unseren Clustern sind sowohl PHP 7.1 als auch die neue Version PHP 7.2 verfügbar. Mit einem einfachen Klick lässt sich das Upgrade für NGINX und Apache Webserver installieren (siehe Screenshot 1). Allerdings ist für die Integration ein Debian 8 Cluster notwendig. Falls Sie Unterstützung bei einem Upgrade wünschen, steht Ihnen unser Team gern zur Seite. Kontaktieren Sie uns bitte unter service@maxcluster.de oder telefonisch +0049 5251 / 41 41 30.

PHP 7.1 Installation bei maxcluster

Screenshot 1: Gewünschte PHP-Version im Managed Center aktivieren

Unsere Handlungsempfehlung

Wann macht ein Update von PHP 7.0 auf 7.1 Sinn?

Definitiv ist ein Update sinnvoll und zu empfehlen für alle Nutzer von Magento 1 und Magento 2.2 und höher. Hier lohnt es sich, da alle neuen Features von PHP 7.1 ab dieser Magento Version genutzt werden können. Zudem ist es sinnvoll für WordPress und Contao User sowie für die Nutzer von Typo3 (ab Version 7) und WooCommerce (ab Version 3). Für Magento 1 empfehlen wir aufgrund des neuen Patches für PHP 7.2 Support direkt auf PHP 7.2 zu wechseln.

Für Shopware Nutzer lohnt sich ein Upgrade ab Shopware 5.5. Hier sind die Shopware Plugins quelloffen.

Sollten Sie sich zudem für PHP 7.2 interessieren und ein Upgrade auf diese Version in Erwägung ziehen, erfahren Sie wichtige Informationen im Blogbeitrag: PHP 7.2 – Wann macht ein Upgrade von PHP 7.0 oder 7.1 auf 7.2 Sinn?

Dieser Beitrag wurde am 5. Oktober 2018 aktualisiert.

Bild: rawpixel.com