PHP 7 – Mehr Beschleunigung für WordPress

PHP 7 – Mehr Beschleunigung für WordPress

Nach mehrmaligem Verschieben der Veröffentlichung ist das lang ersehnte Update PHP 7 nun endlich erschienen. Die Hauptverbesserungen bei PHP 7 wurden an den internen Datenstrukturen vorgenommen. Dort konnte der Speicherbedarf stark reduziert werden, was zu einer deutlichen Erhöhung der Ausführungsgeschwindigkeit von PHP-Skripten führt. Der Umstieg sollte sich also lohnen.

Ungleich zu älteren Aktualisierungen wurde PHP 7 zum Anlass genommen, einiges an der Grundstruktur der Programmiersprache zu ändern. Viele Altlasten wurden entfernt und neue Features wurden implementiert. Ob einiger dieser neuen Funktionen in PHP 7 durch die Community von Facebook übernommen worden sind, oder ob diese zufällig die gleichen Ideen umsetzen, weil diese so gut sind ist schwer zu beurteilen. Allerdings liegt die Vermutung nahe, dass die starke Konkurrenz mit der HHVM und dem PHP-Dialekt Hack die Entwicklung der neuen Sprachgeneration deutlich angeregt hat. Herausgekommen ist eine neue PHP-Version, aus der einige ältere Funktionen und Schnittstellen komplett entfernt wurden. Die neue Generation ist damit deutlich performanter als ihre Vorgängerin. PHP-basierte Anwendungen wie Content-Management-Systeme und Showsysteme laufen jetzt spürbar zügiger. Bei WordPress 4.1.1 zeigen sich die Verbesserungen noch eindrucksvoller: PHP 7 verarbeitet mehr als doppelt so viele Anfragen pro Sekunde wie PHP 5.6. Ohne weitere Optimierungen liegt es allerdings bei diesem Wert um 6 Prozent hinter HHVM. Kompiliert man PHP 7 jedoch selbst und „trainiert“ den PHP-Interpreter unter Verwendung der von GCC unterstützten Feedback-Directed Optimization auf die Ausführung von WordPress, so liegen PHP 7 und HHVM gleichauf.

Neue Features

PHP 7 soll Programmierern viele nützliche Neuerungen bringen. Dazu zählt etwa die ausreichende Unterstützung für Unicode. Hier die wichtigsten Neuerungen in PHP 7 auf einen Blick

  • Neue Hashtabellen: Es gibt nun eine neue Implementierung der Hasstabellen in PHP, welche zu reduziertem Speicherbedarf für Arrays führt. In PHP werden Arrays in geordneten Listen von Schlüssel-Wert-Paaren gespeichert und die Zuordnung dieser Schlüssel und Werte wird von eben diesen Hasstabellen gesteuert. Auf 65 Bit Systemen soll dafür nun dreieinhalb Mal weniger Speicher benötigt werden. Dies soll die Leistung der Sprache um bis zu 30 Prozent steigern.
  • Unterstützung für Unicode mit UTF-8: Eigentlich schon längst fällig gewesen, ist nun eine tiefgreifende Unterstützung für Unicode Zeichen mit dem UTF-8 Zeichensatz implementiert worden.
  • Schnittstellen zu nicht mehr gepflegter Software wurden entfernt
  • Die Syntax von Variablen wurde vereinheitlicht
  • Neue Operatoren, wie der Drei-Wege-Vergleichsoperator oder der Null Coalesce Operator sollen dazu kommen
  • Man kann nun auch dem Rückgabewert einer Funktion einen Typen zuweisen.
  • Die interne Datenstruktur für alle Variablen, den sogenannten Zvals, ist überarbeitet worden, was ebenfalls zu einer Steigerung der Leistung beitragen soll
  • Die Verwendung von skalaren Typen wie int, big-int, string, float und bool soll nun möglich sein

Mögliche Probleme beim Wechsel auf PHP 7

Generell ist die Kompatibilität so hoch, dass fast jede Applikation, die mit PHP 5.6 funktioniert auch unter PHP 7 laufen sollte. Es gibt jedoch ein paar kleinere Änderungen, die eine direkte Migration von Anwendungen problematisch machen könnten.

Bei PHP 7 wurden einige bisher nur als veraltet markierte Extensions endgültig entfernt, darunter auch die häufig eingesetzte originale MySQL-Extension. Als Alternativen können die MySQL-Improved-Extension (MySQLi) oder PDO genutzt werden.

Weiterhin sind einige Begriffe wie int, float, bool, string, true, false und null nun reserviert und dürfen nicht mehr für Klassennamen oder Ähnliches genutzt werden. Dies führt bei einigen PHP-Anwendungen wie beispielsweise Joomla zu Problemen.

Aufgrund dieser Änderungen sind viele bekannte PHP-Anwendungen nicht kompatibel mit PHP 7. Für die meisten betroffenen Anwendungen sollten jedoch in Kürze Updates erscheinen, die diese Probleme beheben. Die bei uns am häufigsten genutzte PHP-Anwendung WordPress ist in der aktuellen Version vollständig kompatibel mit PHP 7. Bei älteren Versionen könnten unter Umständen einzelne Plugins nicht kompatibel sein. Daher ist es wichtig, sich vor dem Update zu erkundigen, ob die eigenen Anwendungen und die installierten Erweiterungen die neue PHP-Version unterstützen.

Was wurde aus PHP 6?

Eine häufige Frage lautet: Warum heißt das Release PHP 7 und nicht PHP 6? Diese Entscheidung wurde sehr intensiv auf den entsprechenden Mailinglisten diskutiert.

PHP 6 sollte vor einigen Jahren veröffentlicht werden, mit der Hauptintention, nativ Unicode-Strings zu unterstützen. Dieses Vorhaben wurde aufgrund des hohen Aufwandes interner Rebstrukturierungen und Inkompatibilitäten vollständig abgebrochen. Damit hat PHP 7 einen anderen Fokus als das nie veröffentlichte PHP 6. Durch das Überspringen einer Hauptversion soll damit weniger Verwirrung bei den Benutzern erzeugt werden. Das war den Entwicklern von PHP letztendlich wichtiger als das Bestehen auf formal korrekter Reihenfolge.

Was passiert mit PHP 5?

PHP 5.6 wird das letzte Release von PHP 5 bleiben und noch bis zum 28. August 2016 unterstützt und bis zum 28. August 2017 mit Sicherheitsupdates versehen. Jedes PHP-Release wird für zwei Jahre nach dem Release gewartet und erhält für ein weiteres Jahr Sicherheitsupdates. Damit sollten alle Anwendungsentwickler im Laufe des Jahres 2016 sicherstellen, dass ihre Software auf PHP 7 läuft. Aktuell ist PHP 5.5 schon im Modus „Security fixes only“ und alle älteren Versionen werden nicht mehr gepflegt. Eine Übersicht über die aktiv gepflegten Versionen findet sich auf php.net. Um von der stark verbesserten Performance profitieren zu können, werden die meisten Applikationsbetreiber PHP 7 wohl vorerst selbst kompilieren oder Software-Repositories von Dritten einbinden müssen.

PHP 7 wird das Internet beschleunigen. Da sich der Migrationsaufwand für Applikationen in Grenzen hält und dafür eine deutliche Performance-Steigerung zu erwarten ist, gehen Experten davon aus, dass die Migration deutlich schneller abläuft als vor zehn Jahren von PHP 4 zu PHP 5. Die hohe Rückwärtskompatibilität wird dabei eine Fragmentierung verhindern.

Einige der neuen Sprachfeatures in PHP 7 sind seit sehr langer Zeit gefragt und werden in vielen Entwicklerkreisen willkommen geheißen. Dadurch, dass gerade die großen Distributionen erst sehr langsam auf PHP 7 migrieren werden, hängt es auch von der Art der entwickelten Applikationen ab, wie schnell ma diese auch tatsächlich verwenden kann. Entwickler von In-House-Applikationen sollten ihre Server schnell aktualisieren und können dann die neuen Features einsetzen. Entwickler von Open-Source-Applikationen und Bibliotheken werden aus Kompatibilitätsgründen vorerst darauf verzichten müssen.

Nimm an der Diskussion teil

Your email address will not be published.