Wprowadzenie do przestrzeni nazw w OOP w PHP
Jeśli przy uruchomieniu skryptu PHP będą dwie klasy o takich samych nazwach, to wejdą one w konflikt, co prowadzi do błędu krytycznego. W rzeczywistości nie jest to zbyt wygodne, ponieważ ciągle trzeba dbać o unikalność nazw.
Dla przykładu rozważmy następującą sytuację:
masz stronę internetową, na której są użytkownicy
i administrator. Jednocześnie w folderze users przechowywane są
klasy dla użytkowników, a w folderze admin
- klasy dla administratora.
Załóżmy, że zarówno dla użytkowników, jak i dla administratora potrzebna jest pewna
klasa Page, odpowiedzialna za jakieś
strony serwisu. Jednocześnie dla użytkowników będzie
swoja klasa, a dla administratora - swoja. W takim
przypadku czeka na nas konflikt nazw.
Najprostszy sposób rozwiązania tego konfliktu
- nadać klasom różniące się nazwy, na przykład,
UsersPage i AdminPage. Ta
droga jednak stopniowo prowadzi do pojawiania się
bardzo długich nazw klas.
W PHP istnieje również inny sposób rozwiązania problemu - przestrzenie nazw. Istota jest następująca: każda klasa może należeć do jakiejś przestrzeni nazw i przy tym unikalność nazw klas powinna być zachowana tylko wewnątrz tej przestrzeni.
Czyli, dla rozwiązania naszego problemu możemy
zrobić następujące: przypisać jedną klasę Page
do jakiejś przestrzeni nazw, na przykład,
Users, a drugą klasę Page
przypisać do innej przestrzeni nazw, na przykład,
Admin.