Względne ścieżki w przestrzeniach nazw w OOP w PHP

Załóżmy, że w pliku index.php występuje następujące wywołanie:

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

Jak już wiesz, przy odwoływaniu się do klasy przed jej przestrzenią nazw należy pisać odwrotny ukośnik. W rzeczywistości nie jest to konieczne. Jeśli nie napiszesz tego ukośnika, wywoływana przestrzeń nazw zostanie obliczona względem bieżącej przestrzeni. Spójrz na przykład:

index.php<?php
  namespace Admin\Data;
  
  new Core\Controller; // równoważne \Admin\Data\Core\Controller
?>
Задание 1

Dane są dwie klasy:

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

Uprość kod dla dziedziczenia klasy, biorąc pod uwagę, że przestrzenie nazw naszych klas mają wspólną część.

Задание 2

Dane są dwie klasy:

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

W ten sposób tworzone są obiekty tych klas w pliku index.php:

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

Uprość kod do tworzenia obiektów, biorąc pod uwagę przestrzeń nazw, w której tworzone są obiekty naszych klas.