Relatīvie ceļi nosaukumu telpā OOP PHP

Lai failā index.php notiek šāds izsaukums:

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

Kā jūs jau zināt, piekļūstot klasei pirms tās nosaukumu telpas vajadzētu rakstīt reverso slīpsvītru. Patiesībā tas nav obligāti. Ja šī slīpsvītra netiek rakstīta, tad izsauktā nosaukumu telpa tiks aprēķināta relatīvi pašreizējās nosaukumu telpas. Skatiet piemēru:

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

Dotas divas klases:

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

Vienkāršojiet kodu klases mantošanai, ņemot vērā to, ka mūsu klašu nosaukumu telpām ir sakrītoša daļa.

Задание 2

Dotas divas klases:

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

Tā tiek izveidoti šo klašu objekti failā index.php:

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

Vienkāršojiet kodu objektu izveidošanai, ņemot vērā nosaukumu telpu, kurā tiek izveidoti objekti mūsu klašu.