Blog

10. Juli 2017

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

PHP 7.1 Upgrade

PHP 7.1 ist gegenwärtig nicht mit jeder Anwendung kompatibel. Ob sich ein Umstieg von PHP 7.0 auf PHP 7.1 für die Betreiber von Onlineshops überhaupt lohnt, haben wir im Beitrag zusammengefasst.

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

Was ist neu?

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 zu dieser Version sicherstellen. Häufig ist dies nicht der Fall, weil einzelne Komponenten die neue Version nicht unterstützen. Im Besonderen ist der IonCube-Loader nicht für die neueste PHP-Version verfügbar. Dadurch lässt sich der mit IonCube verschlüsselte PHP Code nicht verwenden, welcher zum Beispiel bei Shopware und manchen Magento Plugins zum Einsatz kommt. Im Folgenden zeigen wir Ihnen die kompatiblen und nicht kompatiblen Anwendungen auf.

PHP 7.1 und Magento

Die neueste PHP-Version ist derzeit für Magento Shops nicht zu empfehlen. Wenn noch PHP 5.x und Magento ab Version 1.9.2.2 im Einsatz sein sollten, ist es definitiv sinnvoll auf PHP 7.0 upzugraden, um den daraus resultierenden hohen Performancevorteil auszunutzen. Der Performanceunterschied von PHP 7.0 zu PHP 7.1 ist wiederum so gering, dass er für eine Optimierung der Ladezeiten nicht schwer ins Gewicht fällt.

Es ist zwar im Grunde möglich, Magento 1 auf PHP 7.1 mithilfe des Plugins von Inchoo laufen zu lassen, jedoch gibt es dadurch fast keinen Vorteil.
Besser ausgedrückt, die neuen Features von PHP 7.1 können nicht von Magento 1 genutzt werden. Wenn IonCube-Loader für den Magento Shop benötigt wird, ist PHP 7.1 nicht kompatibel. Zudem sprechen die häufigen Deprecation-Warnungen in den Logdateien gegen ein Upgrade.
So wird mcrypt als „deprecated“ markiert und erzeugt eine Warnung. In PHP 7.2 (erscheint Ende 2017) wird diese Funktion voraussichtlich entfernt werden.

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 erscheinen soll. Bei dieser Magento Version werden alle neuen Features vollständig unterstützt. Damit wird ein Upgrade mehr als sinnvoll.

Kompatibilität von Anwendungen mit PHP 7.1

Diese Tabelle gibt einen schnellen Überblick mit welcher Anwendung PHP 7.1 genutzt werden kann.

 
Software Kompatibilität Anmerkung
Contao kompatibel
Drupal teilweise kompatibel Ab Drupal 8.2.6 wird PHP 7.1 unterstützt.
Oxid nicht kompatibel
Magento teilweise kompatibel Bei Magento 1 nur mit Inchoo umsetzbar. Magento 2.0 und 2.1 unterstützen die neueste PHP-Version nicht. Die kommende Version 2.2 wird PHP 7.1 unterstützen.
Piwik kompatibel
Shopware teilweise kompatibel Da viele Plugins IonCube benötigen, ist von einem Upgrade abzuraten. Das Modul IonCube ist mit PHP 7.1 nicht kompatibel.
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
Xt:commerce nicht kompatibel Xt:commerce benötigt das Modul Ioncube, welches nicht kompatibel ist.

PHP 7.1 bei maxcluster

Auf Wunsch einiger Kunden haben wir kurzum die neueste PHP-Version für eine schnelle Installation in unserem Managed Center aufgenommen. Mit einem einfachen Klick lässt sich das Upgrade jetzt installieren. Allerdings ist für die Integration ein Debian 8 Cluster notwendig. Kontaktieren Sie unseren Support, falls Sie noch einen Debian 7 Cluster verwenden.

Unsere Handlungsempfehlung

Wir empfehlen, zum jetzigen Zeitpunkt kein Upgrade von PHP 7.0 auf PHP 7.1 durchzuführen. Aus unserer Sicht ist ein Upgrade nur dann sinnvoll, wenn geplant ist, im September einen neuen Shop mit Magento 2.2 aufzusetzen. Hier lohnt es sich, da alle Features mit der neuen Magento Version genutzt werden können und keine Fehlermeldungen mehr erscheinen. Bei anderen kompatiblen Anwendungen ist ein Upgrade zwar ebenfalls möglich, allerdings betrachten wir ein Upgrade erst dann als effektiv, wenn überhaupt ein Bedarf für die neuen Features der neuesten PHP-Version besteht.

 

Bild: rawpixel.com

Teile diesen Beitrag