Relative Paths in Namespaces in OOP in PHP

Let the following call occur in the file index.php:

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

As you already know, when accessing a class, a backslash should be written before its namespace. In fact, this is not necessary. If this slash is not written, then the called namespace will be calculated relative to the current namespace. See the example:

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

Given two classes:

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

Simplify the code for class inheritance, considering that the namespaces of our classes have an overlapping part.

Задание 2

Given two classes:

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

This is how objects of these classes are created in the file index.php:

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

Simplify the code for creating objects, considering the namespace in which objects of our classes are created.