Relatív útvonalak névterekben OOP-ban PHP-ben

Tegyük fel, hogy a index.php fájlban a következő hívás történik:

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

Ahogy már tudod, egy osztály elérésekor a névtere elé fordított perjelet kell írni. Valójában ez nem kötelező. Ha nem írod ezt a perjelet, akkor a meghívott névtér az aktuális névtérhez képest lesz kiszámolva. Nézd a példát:

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

Adott két osztály:

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

Egyszerűsítsd az osztály öröklésének kódját, figyelembe véve, hogy az osztályaink névterének van közös része.

Задание 2

Adott két osztály:

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

Ezeknek az osztályoknak az objektumai a index.php fájlban a következőképpen jönnek létre:

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

Egyszerűsítsd az objektumok létrehozásának kódját, figyelembe véve azt a néteret, amelyben az osztályaink objektumai jönnek létre.