Laluan Relatif dalam Ruang Nama dalam OOP dalam PHP

Katakan dalam fail index.php berlaku panggilan berikut:

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

Seperti yang anda sudah tahu, apabila merujuk kepada kelas sebelum ruang namanya, anda harus menulis slash terbalik. Sebenarnya, ini tidak semestinya. Jika slash ini tidak ditulis, maka ruang nama yang dipanggil akan dikira secara relatif kepada ruang nama semasa. Lihat contoh:

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

Diberi dua kelas:

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

Permudahkan kod untuk pewarisan kelas, dengan mengambil kira bahawa ruang nama kelas kita mempunyai bahagian yang bertindih.

Задание 2

Diberi dua kelas:

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

Beginilah objek kelas ini dicipta dalam fail index.php:

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

Permudahkan kod untuk mencipta objek, dengan mengambil kira ruang nama di mana objek kelas kita dicipta.