Падпрасторы імёнаў у ААП у PHP

Няхай цяпер у нас ёсць больш складаная сітуацыя: для адміна трэба зрабіць два класы Page - адзін з дадзенымі старонкі, а другі - з прадстаўленнем гэтых дадзеных. Няхай першы клас знаходзіцца ў файле /admin/data/page.php, а другі - у файле /admin/view/page.php.

У папярэдніх уроках мы ўжо вырашылі, што ўсе класы з папкі admin будуць адносіцца да прасторы імёнаў Admin. Аднак, цяпер у гэтай самай прасторы ў нас канфлікт двух класаў. Для вырашэння праблемы можна зрабіць дадатковыя падпрасторы імёнаў. Напрыклад, можна зрабіць прастору імёнаў Admin, а ў ёй падпрасторы Data і View. У такім выпадку імёны гэтых падпрастор проста запісваюцца праз адваротны слэш - як пры заданні прасторы імёнаў, так і пры стварэнні аб'екта класа.

Тут варта ўдакладніць, што ўзровень укладзенасці падпрастор не абмежаваны (можна ствараць пад падпрасторы ў падпрасторах і гэтак далей).

Такім чынам, давайце дарабім наш апісаны вышэй прыклад. Для класа Page з файла /admin/data/page.php укажам прастору імёнаў Admin\Data:

/admin/data/page.php<?php
  namespace Admin\Data;
  
  class Page
  {
    
  }
?>

Для класа Page з файла /admin/view/page.php укажам прастору імёнаў Admin\View:

/admin/view/page.php<?php
  namespace Admin\View;
  
  class Page
  {
    
  }
?>

Стварым аб'екты нашых класаў:

/index.php<?php
  require_once '/admin/data/page.php';
  require_once '/admin/view/page.php';
  
  $adminDataPage = new \Admin\Data\Page;
  $adminViewPage = new \Admin\View\Page;
?>
Задание 1

Няхай у вас ёсць папка modules/cart. Зрабіце так, каб усе класы з гэтай папкі адносіліся да прасторы імёнаў Modules\Cart.

Задание 2

Няхай у вас ёсць папка modules/shop/cart/. Зрабіце так, каб усе класы з гэтай папкі адносіліся да прасторы імёнаў Modules\Shop\Cart.