PHP ООП-дегі есімдер кеңістігіндегі салыстырмалы жолдар

Файлда index.php келесі шақыру орын алады делік:

index.php<?php
  namespace Admin\Data;
  
  new \Core\Controller;
?>

Сіз білетіндей, класқа жүгінгенде оның есімдер кеңістігінің алдына кері сызықты жазу керек. Шын мәнінде бұл міндетті емес. Егер бұл сызықты жазбасаңыз, онда шақырылатын есімдер кеңістігі ағымдағы кеңістікке салыстырмалы түрде есептелетін болады. Мысалды қараңыз:

index.php<?php
  namespace Admin\Data;
  
  new Core\Controller; // \Admin\Data\Core\Controller эквиваленті
?>
Задание 1

Екі класс берілген:

php<?php
  namespace Modules\Shop\Core;
  
  class Cart
  {
    
  }
?>
php<?php
  namespace Modules\Shop;
  
  class UserCart extends \Modules\Shop\Core\Cart
  {
    
  }
?>

Класс мұрагерлігі үшін кодты жеңілдетіңіз, біздің класс есімдер кеңістіктерінің сәйкес келетін бөлігі бар екенін ескере отырып.

Задание 2

Екі класс берілген:

php<?php
  namespace Core\Data;
  
  class Controller
  {
    
  }
?>
php<?php
  namespace Core\Data;
  
  class Model
  {
    
  }
?>

Бұл класстардың объектілері index.php файлында былай жасалады:

index.php<?php
  namespace Core\Data;
  
  $controller = new \Core\Data\Controller;
  $model      = new \Core\Data\Model;
?>

Объектілер жасау үшін кодты жеңілдетіңіз, объектілеріміздің жасалып жатқан есімдер кеңістігін ескере отырып.