Đường dẫn tương đối trong không gian tên trong OOP PHP

Giả sử trong file index.php có lời gọi sau:

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

Như bạn đã biết, khi truy cập vào một class, trước không gian tên của nó cần viết dấu gạch chéo ngược. Trên thực tế điều này không bắt buộc. Nếu không viết dấu gạch chéo đó, thì không gian tên được gọi sẽ được tính toán tương đối so với không gian tên hiện tại. Xem ví dụ:

index.php<?php
  namespace Admin\Data;
  
  new Core\Controller; // tương đương với \Admin\Data\Core\Controller
?>
Задание 1

Cho hai class:

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

Hãy đơn giản hóa mã kế thừa class, xem xét việc không gian tên của các class của chúng ta có phần trùng nhau.

Задание 2

Cho hai class:

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

Đây là cách tạo đối tượng của các class này trong file index.php:

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

Hãy đơn giản hóa mã để tạo đối tượng, xem xét không gian tên nơi tạo đối tượng của các class của chúng ta.