Introducere în spațiile de nume în OOP în PHP
Dacă la rularea scriptului PHP există două clase cu același nume, acestea vor intra în conflict, ceea ce va duce la o eroare fatală. Acest lucru nu este foarte convenabil, deoarece trebuie să urmărim constant unicitatea numelor.
De exemplu, luați în considerare următoarea situație:
aveți un site care are utilizatori
și administratori. În același timp, în folderul users sunt stocate
clasele pentru utilizatori, iar în folderul admin
- clasele pentru administratori.
Să presupunem că atât pentru utilizatori, cât și pentru administratori este necesară o anumită
clasă Page, care răspunde de unele
pagini ale site-ului. În același timp, pentru utilizatori va fi
propria lor clasă, iar pentru administratori - propria lor. În astfel de
cazuri, suntem prinși în capcana conflictului de nume.
Cea mai simplă modalitate de a rezolva acest conflict
- este de a da nume diferite claselor, de exemplu,
UsersPage și AdminPage. Acest
drum, totuși, duce treptat la apariția
unor nume de clase foarte lungi.
În PHP există o altă cale de a rezolva problema - spațiile de nume. Esența este următoarea: fiecare clasă poate aparține unui anumit spațiu de nume și, în acest caz, unicitatea numelor claselor trebuie respectată doar în interiorul acestui spațiu.
Adică, pentru a ne rezolva problema, putem
face următoarele: să atribuim o clasă Page
unui spațiu de nume, de exemplu,
Users, iar a doua clasă Page
să o atribuim unui alt spațiu de nume, de exemplu,
Admin.