Schon seit 11 Jahren wartet die PHP-Gemeinde auf die nächste Hauptversion der beliebtesten Scriptsprache des Web. Vor einem Monat ist es ja fast soweit gewesen – und dann führten diverse Zusammenbrüche und Rückschritte dazu, dass der Start von PHP 7 verschoben wurde.

Nach einem Bericht von Heise unter der Überschrift “Eine neue Zeitrechnung” soll PHP 7 heute freigegeben werden. Seit letzten Dienstag soll der fertige Code auf GitHub bereitstehen.

Alle Komponenten grundlegend überarbeitet

Die Grundlage von PHP 7 ist der PHPNG-Branch, in dem der ausführende Core von PHP grundlegend überarbeitet wurde, um den erzeugten PHP-Bytecode schneller zu machen und mit geringerem Speicherbedarf ausführen zu können.

Dabei geht es um zahlreichen Überarbeitungen, durch die man unter anderem von den Verbesserungen aktueller C-Compilern profitieren, verstärkt CPU-Caches benutzen, den Arbeitsspeicher effizienter allozieren, Hashtables performanter verarbeiten und besseren PHP-Bytecode erzeugen kann.

Nicht nur der Core, sondern auch nahezu alle anderen Komponenten wie Lexer, Parser und Bytecode-Generator wurden komplett überarbeitet. Der Lexer ist jetzt kontextsensitiv und unterstützt auch semireservierte Schlüsselwörter. Statt direkt aus dem Parser heraus den Bytecode zu erzeugen, wird in PHP 7 zuerst ein abstrakter Syntaxbaum erzeugt, der dann die Grundlage für die Generierung des Bytecodes bildet.

PHP 7 ist sehr schnell

PHP 7.0 kommt unter anderem mit Typsicherheit für skalare Datentypen und einer deutlich überarbeiteten Zend Engine daher. Die neue Hauptversion der Scriptsprache soll gegenüber ihrem Vorgänger PHP 5.6 deutlich schneller sein. In der Ankündigung ist dabei sogar von bis zu doppelter Geschwindigkeit die Rede, im Vergleich zu PHP 5.0 soll PHP 7 mit 14-facher Geschwindigkeit beeindrucken.

Der aktive Support für PHP 5 endet im August 2016, und ein weiteres Jahr lang wird es noch Patches für Sicherheitslücken geben. Die Anwender sollten sich also darauf vorbereiten, ihren Code rechtzeitig auf das neue PHP 7 zu migrieren.