Увядзенне ў прасторы імёнаў у ААП у PHP
Калі пры запуску PHP скрыпта будуць два класы з аднолькавымі імёнамі, то яны ўступяць у канфлікт, што прывядзе да фатальнай памылкі. Гэта на самай справе не вельмі зручна, так як пастаянна прыходзіцца сочыць за ўнікальнасцю імёнаў.
Для прыкладу разгледзім наступную сітуацыю:
у вас ёсць сайт, на якім ёсць карыстальнікі
і адмін. Пры гэтым у тэчцы users захоўваюцца
класы для юзераў, а ў тэчцы admin
- класы для адміна.
Хай і для юзераў, і для адміна патрэбны нейкі
клас Page, які адказвае за якія-то
старонкі сайта. Пры гэтым для юзераў будзе
свой клас, а для адміна - свой. У такім
выпадку нас і падпякае канфлікт імёнаў.
Самы просты спосаб вырашэння гэтага канфлікту
- даць якія адрозніваюцца імёны класам, напрыклад,
UsersPage і AdminPage. Гэты
шлях, аднак, паступова ведзе да з'яўлення
вельмі доўгіх імёнаў класаў.
У PHP існуе і іншы шлях вырашэння праблемы - прасторы імёнаў. Сутнасць у наступным: кожны клас можа адносіцца да якой-то прасторы імёнаў і пры гэтым унікальнасць імёнаў класаў павінна выконвацца толькі ўнутры гэтай прасторы.
Гэта значыць, для вырашэння нашай праблемы мы можам
зрабіць наступнае: аднесці адзін клас Page
да якой-небудзь прасторы імёнаў, напрыклад,
Users, а другі клас Page
аднесці да другой прасторы імёнаў, напрыклад,
Admin.