Njia Relatif katika Nafasi ya Majina katika OOP katika PHP

Hebu kwenye faili index.php ifanyike wito ufuatao:

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

Kama ulivyojua tayari, wakati wa kurejelea darasa mbele ya nafasi yake ya jina inapaswa kuandikwa slash ya nyuma. Kweli hii si lazima. Ikiwa hii slash haijaandikwa, basi nafasi ya jina iliyotajwa itahesabiwa kuhusiana na nafasi ya jina ya sasa. Tazama mfano:

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

Imetolewa madarasa mawili:

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

Rahisisha kodi ya urithi wa darasa, kwa kuzingatia kwamba, nafasi za majina za madarasa yetu zina sehemu inayofanana.

Задание 2

Imetolewa madarasa mawili:

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

Hivi ndivyo vitu vya madarasa haya vinavyoundwa kwenye faili index.php:

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

Rahisisha kodi ya kuunda vitu, kwa kuzingatia nafasi ya jina, ambapo vitu vya madarasa yetu vinakuwa.