Einführung in Namensräume in OOP in PHP
Wenn beim Starten eines PHP-Skripts zwei Klassen mit demselben Namen vorhanden sind, werden sie in Konflikt geraten, was zu einem fatalen Fehler führt. Das ist in der Praxis nicht sehr praktisch, da man ständig auf die Eindeutigkeit der Namen achten muss.
Betrachten wir als Beispiel die folgende Situation:
Sie haben eine Website, auf der es Benutzer
und Administratoren gibt. Dabei sind im Ordner users
die Klassen für die Benutzer gespeichert, und im Ordner admin
- die Klassen für den Administrator.
Angenommen, sowohl für Benutzer als auch für Administratoren wird eine bestimmte
Klasse Page benötigt, die für einige
Seiten der Website verantwortlich ist. Dabei gibt es für die Benutzer
ihre eigene Klasse und für den Administrator - eine eigene. In einem solchen
Fall erwartet uns genau dieser Namenskonflikt.
Die einfachste Lösung für diesen Konflikt
- besteht darin, den Klassen unterschiedliche Namen zu geben, zum Beispiel
UsersPage und AdminPage. Dieser
Weg führt jedoch allmählich dazu, dass
sehr lange Klassennamen entstehen.
In PHP gibt es einen anderen Weg, das Problem zu lösen - Namensräume. Die Idee ist folgende: Jede Klasse kann zu einem bestimmten Namensraum gehören und dabei muss die Eindeutigkeit der Klassennamen nur innerhalb dieses Namensraums eingehalten werden.
Das heißt, um unser Problem zu lösen, können wir
Folgendes tun: Wir ordnen eine Klasse Page
einem beliebigen Namensraum zu, zum Beispiel
Users, und die zweite Klasse Page
einem anderen Namensraum, zum Beispiel
Admin.