Jalur Relatif dalam Namespace di OOP PHP

Misalkan dalam file index.php terjadi pemanggilan berikut:

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

Seperti yang sudah Anda ketahui, saat mengakses kelas sebelum namespace-nya harus ditulis backslash. Sebenarnya ini tidak wajib. Jika backslash ini tidak ditulis, maka namespace yang dipanggil akan dihitung relatif terhadap namespace saat ini. Lihat contoh:

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

Diberikan dua kelas:

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

Sederhanakan kode untuk pewarisan kelas, dengan mempertimbangkan bahwa namespace kelas-kelas kita memiliki bagian yang sama.

Задание 2

Diberikan dua kelas:

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

Berikut adalah cara objek kelas-kelas ini dibuat dalam file index.php:

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

Sederhanakan kode untuk pembuatan objek, dengan mempertimbangkan namespace tempat objek kelas-kelas kita dibuat.