PHP 5.3 mit vielen neuen Funktionen

Die PHP-Entwickler veröffentlichen mit PHP 5.3 die nächste Generation der populären Web-Programmiersprache. Fundamentale Neuerungen beinhalten Namespaces, Lambda-Funktionen, Closures und einen neuen Garbage Collector.

In Pocket speichern vorlesen Druckansicht 156 Kommentare lesen
Lesezeit: 3 Min.
Von
  • Alexander Neumann

Gut zweieinhalb Jahre nach der Veröffentlichung von PHP 5.2.0 ist nun mit Version 5.3.0 die nächste Generation der Web-Programmiersprache erschienen. Die neue Release ist eine der größten Überarbeitungen in der Geschichte von PHP, deren Umfang mit dem Versionssprung von PHP 4 auf PHP 5 vergleichbar ist. Viele der früher einmal für PHP 6 geplanten Funktionen sind bereits in der 5.3-Entwicklungsschiene gelandet.

Neu sind zum Beispiel Namespaces, die ein lange Zeit vermisstes, aber auch kontrovers diskutiertes Sprachmerkmal sind, bei dem sich derselbe Name (für eine Konstante, Klasse oder Funktion) in unterschiedlichen Namensräumen ohne Konflikt verwenden lässt. Mit Version 5.3 wurde darüber hinaus ein wesentliches Merkmal objektorientierter Programmierung eingeführt: die dynamische beziehungsweise späte Bindung. Erst zur Laufzeit lässt sich entscheiden, welche Methode bei einem Methodenaufruf tatsächlich auszuführen ist. Früher war die dynamische Bindung nur für Instanzmethoden implementiert, die Bindung für Klassenmethoden also statisch. Der Programmierer kann nun selbst entscheiden, ob er für den Aufruf einer Klassenmethode die dynamische oder statische Bindung verwenden soll.

Vor PHP 5.3 war es nur mit create_function() zu realisieren, eine Lambda-Funktion zu deklarieren. In PHP 5.3 ist es nun möglich, eine anonyme Funktion direkt im Quelltext zu notieren. Dank ihr ist der PHP-Interpreter in der Lage, in der Kompilierphase etwaige Syntaxfehler im Rumpf der anonymen Funktion zu entdecken. Neu sind auch Closures, anonyme Funktionen, die um eine Bindung an externe, sogenannte lexikalische Variablen erweitert sind.

Zusätzlich hat PHP einen neuen Garbage Collector erhalten, der den in "Concurrent Cycle Collection in Reference Counted Systems" von IBM vorgestellten Algorithmus nutzt. Das Besondere an ihm ist, dass er Objektzyklen erkennt und auflöst. Besonders bei lang laufenden PHP-Prozessen soll sich der neue Garbage Collector bemerkbar machen. Die PHP-Entwickler haben einige weitere Überarbeitungen am PHP-Interpreter vorgenommen, die über die Verbesserungen des Garbage Collector hinaus gehen. Sie wirken sich sowohl auf die Ausführungsgeschwindigkeit als auch auf den Speicherverbrauch aus.

Schließlich hält mit mysqlnd eine für PHP entwickelte und optimierte Implementierung des MySQL-Client/Server-Protokolls in PHP 5.3 Einzug. Dies führt beim Umgang mit großen Datenmengen zu deutlich verbessertem Laufzeitverhalten. Durch Microsofts Unterstützung schließt PHP unter Windows mit PHP 5.3 hinsichtlich Funktionsumfang, Performanz und Stabilität im Vergleich zu anderen Betriebssystemen auf. Funktionen, die bislang nur unter Unix verfügbar waren beziehungsweise unter Unix teilweise anders funktionierten, lassen sich nun auf der Microsoft-Plattform verwenden. (Sebastian Bergmann)

Auf die Neuerungen in PHP 5.3 geht detailliert ein aktueller Artikel auf "heise Developer" ein. (ane)