Relative stier i navnerom i OOP i PHP

La det i filen index.php skje følgende kall:

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

Som du allerede vet, når du aksesserer en klasse skal man skrive en omvendt skråstrek foran dens navnerom. Egentlig er dette ikke nødvendig. Hvis denne skråstreken ikke skrives, vil det aktuelle navnerommet bli beregnet relativt til det nåværende navnerommet. Se eksempel:

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

Det er gitt to klasser:

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

Forenkle koden for arv av klassen, ta i betraktning at navnerommene til våre klasser har en overlappende del.

Задание 2

Det er gitt to klasser:

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

Slik opprettes objekter av disse klassene i filen index.php:

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

Forenkle koden for opprettelse av objekter, ta i betraktning navnerommet der objektene av våre klasser opprettes.