PHP 5 mit Fokus auf Objektorientierung

30.07.2002
Von 
Wolfgang Sommergut ist Betreiber der Online-Publikation WindowsPro.

Die traditionelle PHP-Zielgruppe der Web-Entwickler zeigt sich allerdings gegenüber der Nutzung einer integrierten Entwicklungsumgebung (IDE) weitgehend resistent, das Verbergen von Quellcode vor fremden Blicken mit Hilfe des Encoders ist ihr selten ein Anliegen. Neben der Enterprise-Kundschaft peilt Zend daher auch Kooperationen mit Herstellern von Autorenwerkzeugen an. So nahm Adobe für "Golive" Technologie der israelischen Firma in Lizenz. Konkurrenz zu ASP.NET und Java Server Pages In der Arbeitsteilung mit Java und .NET/COM muss PHP indes mit den entsprechenden Technologien der beiden Plattformen konkurrieren. Bei Microsoft handelt es sich dabei um ASP.NET, Sun sieht für die Erzeugung dynamischer Web-Inhalte vornehmlich Java Server Pages (JSPs) vor. Gerade Letztere gewinnen für den unternehmensinterne Einsatz zunehmend an Attraktivität, weil Hersteller wie IBM oder Oracle Funktionen ihrer Server-Produkte für JSP-Entwickler über Tag Libraries leicht zugänglich machen.

Nicht zuletzt sind es Open-Source-Projekte wie Apaches "Jakarta", die mit Frameworks wie "Struts" oder eigenen Taglibs die Nutzung von JSPs vereinfachen. Zu den Neuerungen der Version 5 gehören neben besserer Abstimmung auf den Web-Server "Apache 2" vor allem die Erweiterung und Modifizierung objektorientierter Features. Als wesentliche Änderung gilt insbesondere, dass PHP Objekte nicht mehr als Kopie an Funktionen übergibt, sondern wie Java intern nur mehr mit Referenzen arbeitet. Dies bringt nicht nur Geschwindigkeitsvorteile, sondern vereinfacht für den Programmierer den Zugriff auf Attribute von Objekten, die von Methoden zurückgegeben werden.

Zu den sichtbarsten Änderungen für Anwender gehört zudem, dass die Namen von Konstruktoren zukünftig nicht mehr identisch mit jenem ihrer Klasse sein sollen, sondern generell die Bezeichnung "__construct()" tragen. Damit möchte das PHP-Team den Aufruf von Konstruktoren der Basisklasse vereinfachen, weil der Einheitsname von Änderungen in der Objekthierarchie nicht betroffen wäre. Hinzu kommt eine Standardmethode zum Duplizieren von Objekten namens "__clone()".

Die Schattenseite von PHPs Objektorientierung

Ein Defizit in PHPs Objektorientierung stellten bisher die ungenügenden Zugriffsbeschränkungen auf Felder von Objekten dar. Diese haben in der Version 4 prinzipiell den Status öffentlich, was dem Bedürfnis nach Kapselung von Objekten zuwiderläuft. PHP 5 führt nun das Schlüsselwort "private" ein. Das bevorstehende Update holt bei der Objektorientierung einiges von dem nach, was in Sprachen wie Java und Ablegern wie C# von Anfang an üblich war.

Mit Destruktoren ("delete()") führt PHP indes ein zusätzliches, wenn auch zweifelhaftes Feature ein. Eine solche Methode erlaubt das explizite Zerstören eines Objekts, auch wenn noch Referenzen darauf verweisen. Auch mit einer weiteren Neuerung, der Behandlung von geprüften Ausnahmen, zieht PHP gegenüber anderen Sprachen gleich. Mittlerweile kennt etwa auch Visual Basic in seiner .NET-Ausführung dieses Feature. Eine detaillierte Übersicht über Änderungen in PHP 5 findet sich hier.