Caminhos relativos no espaço de nomes em OOP no PHP

Suponha que no arquivo index.php ocorra a seguinte chamada:

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

Como você já sabe, ao acessar uma classe, uma barra invertida deve ser escrita antes de seu espaço de nomes. Na verdade, isso não é obrigatório. Se essa barra não for escrita, o espaço de nomes chamado será calculado relativamente ao espaço de nomes atual. Veja o exemplo:

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

Dadas duas classes:

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

Simplifique o código para herança de classe, considerando que os espaços de nomes de nossas classes têm uma parte coincidente.

Задание 2

Dadas duas classes:

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

É assim que os objetos dessas classes são criados no arquivo index.php:

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

Simplifique o código para criação de objetos, considerando o espaço de nomes no qual os objetos de nossas classes são criados.