PUBLIKATIONEN

PHP 5.3

Mit PHP 5.3 kamen einige wichtige und nützliche Änderungen, auf diese wollen wir hier näher eingehen.

Eine der Neuerungen sind die Namespaces. Mit Hilfe von Namespaces ist es möglich Namen für Konstanten, Klassen oder Funktionen in unterschiedliche Namensräume zu verlagern, damit diese ohne Konflikte verwendet werden können.

Beispiel zu Namespaces bei Heise.de

Mit PHP 5.3 wurde ebenfalls ein weiterer großer Schritt in die objektorientierte Richtung gemacht in dem es möglich wurde dynamische bzw. späte Bindung zu nutzen, womit es möglich ist, Klasen im Kontext statischer Vererbung zu referenzieren.

Beispiel zur späten Bindung bei Heise.de

Vor PHP 5.3 war es nur mit create_function() möglich eine anonyme Funktion zu deklarieren. Seid PHP 5.3 ist es auch 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.

Beispiel zu anonymen Funktionen bei PHP.net

Eine weitere Neuheit ist der Garbage Collector der den in „Concurrent Cycle Collection in Reference Counted Systems“ vom IBM vorgestellten Algorithmus nutzt. Das besondere an ihm ist, dass er Objektzyklen erkennt und auflöst.

Besonders bemerkbar soll sich der neue Garbage Collector bei lang laufenden PHP-Prozessen machen.

Beispiel zum Garbage Collector bei Heise.de

Der Verbrauch des Speichers und auch die Ausführungsgeschwindigkeit wurde von den Entwicklern überarbeitet und dies sollte sich deutlich bemerkbar machen.

Mit mysqlnd kommt eine für PHP entwickelte optimierte Implementierung des MySQL-Client / Server- Protokolls in PHP 5.3.

Beispielsweise lagen bisher die Daten der Ergebniszeilen von Anfragen im Speicher von libmysql und in dem von PHP, so belegen sie nun nur noch einmal Speicher, und zwar im von PHP-Prozess verwalteten Speicherbereich, was zu einer deutlichen Verbesserung des Laufzeitverhaltens führt beim Umgang mit größeren Datenmengen.

Mysqlnd wird standardmäßig mit PHP 5.3 ausgeliefert und lässt sich für die unterschiedlichen MySQL-APIs (mysql, mysqli, pdo_mysql) als Ersatz für die unter der GPL stehende libmysql verwenden.

Auch die Unterstützung für Microsoft Produkte wurde überarbeitet. Viele Befehle funktionierten nur über UNIX Systeme oder funktionierten anders auf UNIX Systemen wie auf Microsoft Systemen.

Eine weitere Neuerung ist die Unterstützung der PHAR-Erweiterung die dazu führt das von Haus aus das PHP-Archiv-Format erkannt wird. Dieses an JAR (Java Archive) angelehnte Dateiformat dient zum Verteilen von PHP-Bibliotheken und –Programmen.

International Competens for Unicode (ICU) wird durch die neue intl-Erweiterung implementiert und ist eine Bibliothek für Unicode Unterstützung und Internationalisierung und bietet mit ihren Klassen und Funktionen eine komfortable Unterstützung bei der Internationalisierung von PHP-Anwendungen.

Die mime-magic Erweiterung wurde durch die neue fileinfo Erweiterung mit gebündelter libmagic Bibliothek ersetzt.

Die Erweiterungen dbase, fbsql, fdf, ncurses, ming, sybase hat man aus der Standarddistribution von PHP entfernt und nach PECL (PHP Extension Community Library) verschoben. Die sybase_ct-Erweiterung, die anstelle von sybase zu verwenden ist, ist hiervon nicht betroffen.

Links:
Concurrent Cycle Collection in Reference Counted Systems

Schreibe einen Kommentar

Ähnliche Artikel
Kontakt