Úvod do jmenných prostorů v OOP v PHP
Pokud při spuštění PHP skriptu budou existovat dvě třídy se stejnými názvy, dojde ke konfliktu, což povede k fatální chybě. To ve skutečnosti není příliš pohodlné, protože je nutné neustále hlídat jedinečnost názvů.
Jako příklad uvažujme následující situaci:
máte web, na kterém jsou uživatelé
a admin. Zároveň v složce users jsou uloženy
třídy pro uživatele, a v složce admin
- třídy pro admina.
Předpokládejme, že jak pro uživatele, tak pro admina je potřeba určitá
třída Page, která zodpovídá za nějaké
stránky webu. Zároveň pro uživatele bude
její vlastní třída a pro admina - její vlastní. V takovém
případě na nás čeká konflikt názvů.
Nejjednodušší způsob řešení tohoto konfliktu
- dát třídám odlišné názvy, například,
UsersPage a AdminPage. Tato
cesta však postupně vede ke vzniku
velmi dlouhých názvů tříd.
V PHP existuje i jiná cesta řešení problému - jmenné prostory. Podstata je následující: každá třída může náležet k nějakému jmennému prostoru a přitom jedinečnost názvů tříd musí být dodržována pouze uvnitř tohoto prostoru.
To znamená, že pro řešení našeho problému můžeme
udělat následující: zařadit jednu třídu Page
do nějakého jmenného prostoru, například,
Users, a druhou třídu Page
zařadit do jiného jmenného prostoru, například,
Admin.