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.