PHP-də OOP-də namespace məkanında nisbi yollarlar

Tutaq ki, index.php faylında aşağıdaki çağırış baş verir:

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

Artıq bildiyiniz kimi, klasa müraciət edərkən onun namespace məkanının qarşısında əks səliqə yazmaq lazımdır. Əslində bu mütləq deyil. Əgər bu səliqə yazılmasa, onda çağırılan namespace məkanı cari namespace-ə nisbətən hesablanacaq. Nümunəyə baxın:

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

Iki klas verilib:

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

Kodumuzun namespace-lərinin üst-üstə düşən hissəsi olduğunu nəzərə alaraq, klas mirasları üçün kodu sadələşdirin.

Задание 2

Iki klas verilib:

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

Bu klasların obyektləri index.php faylında belə yaradılır:

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

Obyektlərin yaradıldığı namespace məkanını nəzərə alaraq, obyekt yaratmaq üçün kodu sadələşdirin.