Տարածքների անունների հարաբերական ուղիները OOP-ում PHP-ում

Ենթադրենք index.php ֆայլում տեղի է ունենում հետևյալ կանչը.

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

Ինչպես արդեն գիտեք, դասին դիմելիս նրա տարածքի անունից առաջ պետք է գրել հակադարձ շեղ: Իրականում դա պարտադիր չէ. Եթե այդ շեղը չգրել, ապա կանչվող տարածքի անունը կհաշվարկվի ընթացիկ տարածքի նկատմամբ: Նայեք օրինակը.

index.php<?php
  namespace Admin\Data;
  
  new Core\Controller; // համարժեք է \Admin\Data\Core\Controller
?>
Задание 1

Տրված են երկու դասեր.

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

Պարզեցրեք դասի ժառանգման կոդը, հաշվի առնելով այն, որ մեր դասերի տարածքների անունները ունեն համընկնող մաս:

Задание 2

Տրված են երկու դասեր.

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

Այս դասերի օբյեկտները index.php ֆայլում ստեղծվում են այսպես.

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

Պարզեցրեք օբյեկտների ստեղծման կոդը, հաշվի առնելով այն տարածքի անունը, որում ստեղծվում են մեր դասերի օբյեկտները: