PHP OOP හි namespace හි සාපේක්ෂ මාර්ග

index.php ගොනුවේ පහත ඇමතුම සිදුවන බව උපකල්පනය කරමු:

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

ඔබ දැනටමත් දන්නා පරිදි, වර්ගයකට ප්‍රවේශ වීමේදී එහි namespace ට පෙර ආපසු ආනත රේඛාව ලිවිය යුතුය. ඇත්ත වශයෙන්ම මෙය අනිවාර්ය නොවේ. මෙම ආනත රේඛාව ලිවීමට අතපසු කළහොත්, ඇමතෙන namespace ගණනය කරනු ලබන්නේ වත්මන් namespace ට සාපේක්ෂවය. උදාහරණය බලන්න:

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
  {
    
  }
?>

අපගේ වර්ගවල namespace හි සමපාත වන කොටස සැලකිල්ලට ගනිමින්, වර්ගය උරුම කිරීම සඳහා වන කේතය සරල කරන්න.

Задание 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;
?>

වස්තූන් නිර්මාණය කරන namespace එක සැලකිල්ලට ගනිමින්, වස්තූන් නිර්මාණය කිරීම සඳහා වන කේතය සරල කරන්න.