Падпрасторы імёнаў у ААП у PHP
Няхай цяпер у нас ёсць больш складаная сітуацыя:
для адміна трэба зрабіць два класы Page
- адзін з дадзенымі старонкі, а другі - з прадстаўленнем
гэтых дадзеных. Няхай першы клас знаходзіцца
ў файле /admin/data/page.php, а другі
- у файле /admin/view/page.php.
У папярэдніх уроках мы ўжо вырашылі, што ўсе класы з папкі
admin будуць адносіцца да прасторы
імёнаў Admin. Аднак, цяпер у гэтай
самай прасторы ў нас канфлікт двух класаў.
Для вырашэння праблемы можна зрабіць дадатковыя
падпрасторы імёнаў. Напрыклад, можна зрабіць
прастору імёнаў Admin, а ў ёй падпрасторы
Data і View. У такім выпадку
імёны гэтых падпрастор проста запісваюцца
праз адваротны слэш - як пры заданні прасторы
імёнаў, так і пры стварэнні аб'екта класа.
Тут варта ўдакладніць, што ўзровень укладзенасці падпрастор не абмежаваны (можна ствараць пад падпрасторы ў падпрасторах і гэтак далей).
Такім чынам, давайце дарабім наш апісаны вышэй
прыклад. Для класа Page з файла /admin/data/page.php
укажам прастору імёнаў Admin\Data:
<?php
namespace Admin\Data;
class Page
{
}
?>
Для класа Page з файла /admin/view/page.php
укажам прастору імёнаў Admin\View:
<?php
namespace Admin\View;
class Page
{
}
?>
Стварым аб'екты нашых класаў:
<?php
require_once '/admin/data/page.php';
require_once '/admin/view/page.php';
$adminDataPage = new \Admin\Data\Page;
$adminViewPage = new \Admin\View\Page;
?>
Няхай у вас ёсць папка modules/cart.
Зрабіце так, каб усе класы з гэтай папкі
адносіліся да прасторы імёнаў
Modules\Cart.
Няхай у вас ёсць папка modules/shop/cart/.
Зрабіце так, каб усе класы з гэтай папкі
адносіліся да прасторы імёнаў
Modules\Shop\Cart.