Die Entwicklung von PHP 5.4 im Überblick

Seite 2: Short-Array-Syntax und kleinere Änderungen

Inhaltsverzeichnis

Seit Jahren diskutiert die PHP-Community über die Aufnahme einer von Javascript und Python inspirierten Syntax für Arrays. Nach mehreren Anläufen hat man sich für eine neue Short-Arry-Syntax in PHP 5.4 entschieden. PHP Arrays lassen sich so über eckige Klammern erstellen, das Schlüsselwort array() wird nicht mehr benötigt:

  <?php
$heise = array('ix', 'ct', 'developer', 'mobile');
$heise = ['ix', 'ct', 'developer', 'mobile'];

Bei assoziativen Arrays hat man sich darauf verständigt die gewohnte PHP-Syntax für Schlüssel-Wert-Zuweisungen beizubehalten. Das soll unnötige Syntax-Kombinationen verhindern:

  <?php
$person = ['vorname' => 'Hans', 'nachname' => 'Mustermann'];

Zudem soll die Änderung den Programmcode kompakter machen und für Programmierer intuitiver sein.

PHP ist über die Jahre gewachsen und hat in der Zeit eine Vielzahl von Inkonsistenzen angehäuft. Eine Reihe kleiner Spracherweiterungen in PHP 5.4 sollen die Skriptsprache konsistenter machen und aus anderen Sprachen bekannte Konstruktionen ermöglichen. So erlaubt PHP nun das direkte Dereferenzieren von Array-Elementen nach einem Funktionsaufruf:

  <?php
function person() {
return ['vorname' => 'Hans', 'nachname' => 'Mustermann'];
}

echo person()['vorname'];

Im Rahmen dieser Änderungen ist nun der direkte Aufruf einer Methode nach einer Instanziierung möglich:

  <?php
(new Foo)->bar();

Eine komplette Liste der Änderungen findet sich auf der Seite des PHP-Projektes. Nutzern, die von PHP 5.3 auf PHP 5.4 wechseln wollen, sei der Migrations-Guide nahegelegt.

PHP ist eine der populärsten und verbreitesten Skriptsprachen im Web. Neu veröffentlichte Versionen benötigen daher mitunter Jahre, bis sie sich weitreichend durchgesetzt haben, und existierender Programmcode wird nur langsam an die neuen Versionen angepasst. Zwar läuft mittlerweile ein Großteil der PHP-Installationen auf PHP 5.3, dennoch findet man noch immer PHP-5.2-, PHP-5.1- oder sogar PHP-4-Installationen. Streckenweise sind die darauf laufenden Anwendungen inkompatibel zu neueren PHP-Versionen.

Daraus erwächst die Verantwortung der Entwickler und Release-Manager, die Sprache vorsichtig und in kleinen Schritten weiterzuentwickeln und eine Rückwärtskompatibilität langfristig zu sichern.

Die lang erwartete und notwendige Herausnahme der Register Globals und Magic Quotes ist deshalb eine weitreichende Entscheidung. PHP 5.4 räumt hier mit Altlasten auf und markiert einen wichtigen Meilenstein im Entwicklungszweig 5.x.

Eine Hinzunahme von neuen Features wie Traits und der neuen Array-Syntax mag spät erscheinen, zeigt aber, dass die PHP-Community die Entwicklungen anderer Sprachen aufmerksam verfolgt und neue Ideen aufzugreifen vermag. Mit Blick auf die notwendige Unterstützung der neuen Features über Jahrzehnte und im Wissen um historische Fehler wie Magic Quotes und Register Globals entwickelt sich PHP durchaus schnell. Das PHP-Team versucht, innerhalb der Entwicklergemeinde eine Balance zwischen notwendigen Neuerungen und Kompatibilität zu finden.

Dabei hat man auch immer die Performance der virtuellen Maschine mit im Blick. Eine Reihe tiefgreifender Änderungen am Kern des Interpreters verbessert die Ausführungsgeschwindigkeit und reduziert den Speicherverbrauch der Sprache deutlich. PHP 5.4 ist das mit Abstand schnellste und sehr leichtgewichtiges PHP. Erste Benchmarks zeigen einen um bis zu 30 Prozent verringerten Speicherverbrauch und eine bis zu 20 Prozent höhere Ausführungsgeschwindigkeit gegenüber der Vorgängerversion.

Kaum sichtbar, vollzog sich die größte Veränderung hinter den Kulissen. Nach der langen Entwicklungszeit von PHP 5.3 suchte man neue Methoden, um den Veröffentlichungszyklus zu verkürzen und Entscheidungen über neue Sprachfeatures zu Erleichtern. Noch während der Entwicklung der Version 5.3 hat sich ein informelles RFC-System herausgebildet, das man mit PHP 5.4 jetzt weiterführt. Darüber hinaus hat sich die Community auf monatliche Releases verständigt. So soll es Distributionen einfacher gemacht werden, neue PHP-Versionen zu integrieren und Sicherheitspatches schneller zur Verfügung zu stellen.

Die Neustrukturierung all dieser Prozesse und der kommende Wechsel auf ein dezentrales Versionskontrollsystem markieren den Weg zu einer offeneren und dynamischen Entwicklungsstruktur, die sich bereits jetzt positiv auswirkt. Plattformen wie GitHub sollen in Zukunft helfen, Neuerungen schneller vorzuschlagen und einzupflegen. Letztlich beschleunigt der neue Releaseprozess die Entwicklung der Sprache – PHP 5.5 ist für das kommende Jahr vorgesehen. Voraussichtlich wird dann auch die aktive Entwicklung von PHP 5.3 eingestellt.

David Soria Parra
ist Release Manager für PHP 5.4 und arbeitet als Softwareentwickler für die Mayflower GmbH.
(rl)