Erste Beta von PHP 5 freigegeben

Die neue Version der Open-Source-Skriptsprache kommt mit drastisch verbesserter Objektorientierung daher.

Lesezeit: 3 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 625 Beiträge
Von
  • Oliver Lau

Das PHP-Projekt wagt den Sprung auf die nächste Major Release: Die erste Beta der Open-Source-Skriptsprache PHP 5.0.0 wurde freigegeben. Zu den wichtigsten Neuerungen gehört der Umstieg auf die Zend-2-Library, die effektivere Objektverwaltung verheißt; interne Funktionen sollen um bis zu 40 Prozent schneller ablaufen; die XML-Unterstützung wurde von Grund auf überarbeitet und fußt nun auf libxml2. Und ein Wermutstropfen für alle, die bislang auf die beliebte Kombination von PHP mit der Open-Source-Datenbank MySQL gesetzt haben: Die MySQL-Bibliothek wird aus lizenzrechtlichen Gründen ab sofort nicht mehr mitgeliefert. Die MySQL-Extension darf aber weiterhin gegen die von MySQL gelieferten Libraries verlinkt werden. Die Zukunft bestehender PHP-MySQL-Systeme ist also nicht gefährdet. Wer zwar auf MySQL verzichten kann, aber trotzdem mit Datenbanken hantieren möchte, der kann den standardmäßig mitgelieferten Datenbankserver SQLite ausprobieren.

Auf die neue Zend-Library werden Freunde der objektorientierten Programmierung sehnlichst gewartet haben, behandelt sie doch Objekte fortan nicht mehr als primitive Typen wie Integers oder Strings. Wurde bei Zuweisungen wie $a = $obj in früheren PHP-Versionen immer das ganze Objekt kopiert -- es sei denn, man machte den Umweg über $a = &$obj, das der Variablen $a eine Referenz auf die Variable $obj zuweist --, werden ab PHP 5 Objekte ausschließlich über Referenzen angesprochen, so wie man es beispielsweise von Java her kennt. Auch wenn Objekte als Funktionsparameter übergeben werden, landet nur noch eine Referenz (Handler) des Objektes auf dem Stack, aber nicht mehr das Objekt selbst. Das beschleunigt und vereinfacht die Verarbeitung von Objekten ganz erheblich. Wer dennoch Objektkopien benötigt, klont sie einfach per $obj->__clone().

Die Behandlung von Objekten über Referenzen ist aber nicht der einzige professionelle Anstrich, den die Zend-2-Engine dem neuen PHP verleiht: Erstmalig ist es auch möglich, Methoden als private oder protected zu kennzeichnen. Methoden und Membervariablen können darüber hinaus als final oder static deklariert werden, Membervariablen mit const als Konstante. Auch abstrakte Klassen und Methoden sowie Interfaces wurden eingeführt. Und wen es immer genervt hat, dass Variablen typenlos sind, kann dank Type Hinting zumindest Methodendeklarationen lese- und debug-freundlicher gestalten.

Der Aufruf von Konstruktoren war in früheren PHP-Versionen reichlich umständlich, trug doch die Konstruktormethode immer den Namen der Klasse und musste aus einer abgeleiteten Klasse explizit aufgerufen werden, um das Objekt zu initialisieren. Eine einheitlich benannte __construct()-Methode übernimmt nun die Aufgabe des Konstruktors; parent::__construct() ruft die Eltern-Methode der abgeleiteten Klasse auf. Analog dazu kennt PHP 5 jetzt auch Destruktoren, die die Zend-Engine automatisch dann anspringt, wenn die letzte Referenz auf das Objekt gelöscht wurde. Erst nach der Ausführung der __destruct()-Methode wird der Speicher vom Objekt befreit. Auch Ausnahmen (Exceptions) kann PHP 5 behandeln. Eine Java entlehnte try-catch-Konstruktion fängt Ausführungsfehler ab.

Bei der Implementierung sämtlicher Neuerungen haben die Entwickler strikt auf Rückwärtskompatibilität geachtet. Vorhandener PHP 4-Code sollte problemlos auch unter PHP 5 laufen. Beispiele zu den Neuerungen bietet das Zend-2-Changelog.

Testwillige können sich den Quellcode und vorkompilierte Windows-Binaries auf der PHP-Homepage besorgen. Aber Achtung: Es handelt sich um eine Beta, die wegen möglicher Instabilitäten nicht für den produktiven Einsatz geeignet ist, warnen die Entwickler.