
Endlich Namespaces in PHP6? Gestern gab es auf der PHP-Internals Mailingliste einen erneuten Vorstoß in Richtung Unterstützung von Namespaces in PHP. Diesmal kam der Vorstoß direkt aus dem Lager Zend, von Entwickler Dmitry Stogov, unter dem Betreff "Simple Namespace Proposal".
Um Konflikte von Klassen- oder Funktionsnamen zu vermeiden, werden diese bisher in PHP-Anwendungen mit individuellen Präfixen o.ä. versehen (z.b. MeinFramework_Date). Dieses Voranstellen von Präfixen kann aber schnell ausarten und sehr unübersichtlich werden. Hier kommen Namensräume ins Spiel und versprechen Abhilfe, indem ein einmal deklarierter Namensraum für alle Klassen oder Funktionen einer Skriptdatei gültig ist. Dmitry schlägt vor, den Namensraum in der ersten Zeile eines Skriptes zu definieren (z.B. Zend::DB). Dieser gilt dann für den gesamten Code dieser Skriptdatei, d.h. jeder Klasse und Funktion wird automatisch dieser Namen vorangestellt. Um auf eine Klasse innerhalb eines gewünschten Namensraums zuzugreifen, muss lediglich der Namensraum gefolgt von zwei Doppelpunkten gefolgt von der gewünschten Klasse verwendet werden (z.B. Zend::DB::MyClass).
Was gut klingt, kostet auf der anderen Seite aber auch Performance, daher ist eine fruchtbare Diskussion über den Patch zu erwarten - Ausgang wie immer offen :)06.07.2007
blog comments powered by Disqus








