Relativní cesty v namespaces v OOP v PHP

Nechť v souboru index.php probíhá následující volání:

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

Jak již víte, při přístupu ke třídě před jejím namespace by se měla psát obrácená lomítka. Ve skutečnosti to není nutné. Pokud toto lomítko nenapíšete, volaný namespace bude vypočítán relativně k aktuálnímu namespace. Podívejte se na příklad:

index.php<?php
  namespace Admin\Data;
  
  new Core\Controller; // ekvivalentní \Admin\Data\Core\Controller
?>
Задание 1

Jsou dány dvě třídy:

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

Zjednodušte kód pro dědění třídy s ohledem na to, že namespace našich tříd mají shodnou část.

Задание 2

Jsou dány dvě třídy:

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

Takto se vytvářejí objekty těchto tříd v souboru index.php:

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

Zjednodušte kód pro vytváření objektů s ohledem na namespace, ve kterém se objekty našich tříd vytvářejí.