Релативни путеви у простору имена у ООП у 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;
?>

Поједноставите код за креирање објеката, узимајући у обзир простор имена у коме се креирају објекти наших класа.