Relativne poti v imenskem prostoru v OOP v PHP

Recimo, da se v datoteki index.php izvede naslednji klic:

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

Kot že veste, je treba pri dostopu do razreda pred njegovim imenskim prostorom napisati obratno poševnico. Pravzaprav to ni obvezno. Če te poševnice ne napišete, se bo klicani imenski prostor izračunal relativno glede na trenutni imenski prostor. Poglejte primer:

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

Podana sta dva razreda:

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

Poenostavite kodo za dedovanje razreda, upoštevajoč dejstvo, da imajo imenski prostori naših razredov sko skupne dele.

Задание 2

Podana sta dva razreda:

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

Tako se ustvarjajo objekti teh razredov v datoteki index.php:

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

Poenostavite kodo za ustvarjanje objektov, upoštevajoč imenski prostor, v katerem se ustvarjajo objekti naših razredov.