PHP-ում OOP անվանատարածքների ներածություն
Եթե PHP սկրիպտի գործարկման ժամանակ գոյություն ունենան նույն անունով երկու դասեր, ապա դրանք կմտնեն կոնֆլիկտի մեջ, ինչը կհանգեցնի վտանգավոր սխալի: Դա իրականում ոչ շատ հարմար է, քանի որ անընդհատ պետք է հետևել անունների եզակիությանը:
Որպես օրինակ դիտարկենք հետևյալ իրավիճակը.
Ձեր կայքում կան օգտատերեր
և ադմինիստրատոր: Ընդ որում, users պանակում պահվում են
օգտատերերի համար նախատեսված դասերը, իսկ admin
պանակում՝ ադմինիստրատորի համար նախատեսված դասերը:
Ենթադրենք, թե՛ օգտատերերի, թե՛ ադմինիստրատորի համար անհրաժեշտ է ինչ-որ
Page դաս, որը պատասխանատու է կայքի որոշակի
էջերի համար: Ընդ որում, օգտատերերի համար կլինի
իրենց սեփական դասը, իսկ ադմինիստրատորի համար՝ իրենը: Այսպիսի
դեպքում մեզ սպասվում է անունների կոնֆլիկտ:
Այս կոնֆլիկտը լուծելու ամենապարզ միջոցը
դասերին տարբեր անուններ տալն է, օրինակ՝
UsersPage և AdminPage: Սակայն այս
ուղին աստիճանաբար հանգեցնում է
դասերի շատ երկար անունների առաջացման:
PHP-ում գոյություն ունի խնդիրը լուծելու մեկ այլ ուղի՝ անվանատարածքներ: Ընդհանուր գաղափարը հետևյալն է. յուրաքանչյուր դաս կարող է պատկանել ինչ-որ անվանատարածքի և այդ դեպքում դասերի անունների եզակիությունը պետք է պահպանվի միայն ներսում այդ տարածքի:
Այսինքն, մեր խնդիրը լուծելու համար մենք կարող ենք
անել հետևյալը. Page դասերից մեկը դասակարգել
ինչ-որ անվանատարածքի, օրինակ՝
Users, իսկ երկրորդ Page դասը
դասակարգել մեկ այլ անվանատարածքի, օրինակ՝
Admin: