PHP-ում OOP տարածության անունների շարահյուսություն
Դասին տարածության անուն նշանակելու համար անհրաժեշտ է
այն ֆայլի առաջին տողում, որտեղ պահվում է այս
դասը, գրել namespace հրամանը,
իսկ դրանից հետո բացատով՝ այդ
տարածության անունը:
Եթե դասը պատկանում է ինչ-որ տարածության անունների, ապա դասի օբյեկտը ստեղծելու համար անհրաժեշտ կլինի նշել ոչ միայն դասի անունը, այլև նրա տարածության անունը, որոնք բաժանված են հակադարձ շեղագծով: Եկեք նայենք օրինակով:
Ենթադրենք, մենք ունենք Page դաս, որը չի պատկանում
ոչ մի տարածության անունների: Այդ դեպքում այս
դասի օբյեկտը մենք կստեղծենք հետևյալ կերպ.
<?php
$page = new Page;
?>
Ենթադրենք, այժմ այս դասը պատկանում է
անունների Admin տարածությանը: Այս դեպքում այս
դասի օբյեկտը մենք արդեն կստեղծենք այսպես.
<?php
$page = new \Admin\Page;
?>
Եկեք տարանջատենք օգտատերերի դասերն ու դասերը ադմինիստրատորների համար տարբեր տարածությունների անունների, որպեսզի խուսափենք վերը նկարագրված դասերի հակամարտություններից:
Page դասի համար /admin/page.php ֆայլից
նշենք անունների Admin տարածությունը.
<?php
namespace Admin;
class Page
{
}
?>
Իսկ Page դասի համար /users/page.php ֆայլից
նշենք անունների Users տարածությունը.
<?php
namespace Users;
class Page
{
}
?>
Եկեք այժմ /index.php ֆայլում
ստեղծենք մեկ և երկրորդ
Page դասի օբյեկտները.
<?php
require_once '/admin/page.php';
require_once '/users/page.php';
$adminPage = new \Admin\Page;
$usersPage = new \Users\Page;
?>
Ենթադրենք, դուք ունեք core պանակ և պանակ
project: Պանակներից յուրաքանչյուրում կա իր
Controller դասը: Ապահովեք, որ
այդ դասերը պատկանեն տարբեր տարածությունների
անունների: index.php ֆայլում ստեղծեք օբյեկտներ
մեկ և երկրորդ դասերից: