PHP OOP හි namespace හි සාපේක්ෂ මාර්ග
index.php ගොනුවේ පහත ඇමතුම සිදුවන බව
උපකල්පනය කරමු:
<?php
namespace Admin\Data;
new \Core\Controller;
?>
ඔබ දැනටමත් දන්නා පරිදි, වර්ගයකට ප්රවේශ වීමේදී එහි namespace ට පෙර ආපසු ආනත රේඛාව ලිවිය යුතුය. ඇත්ත වශයෙන්ම මෙය අනිවාර්ය නොවේ. මෙම ආනත රේඛාව ලිවීමට අතපසු කළහොත්, ඇමතෙන namespace ගණනය කරනු ලබන්නේ වත්මන් namespace ට සාපේක්ෂවය. උදාහරණය බලන්න:
<?php
namespace Admin\Data;
new Core\Controller; // \Admin\Data\Core\Controller ට සමාන වේ
?>
වර්ග දෙකක් ලබා දී ඇත:
<?php
namespace Modules\Shop\Core;
class Cart
{
}
?>
<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Core\Cart
{
}
?>
අපගේ වර්ගවල namespace හි සමපාත වන කොටස සැලකිල්ලට ගනිමින්, වර්ගය උරුම කිරීම සඳහා වන කේතය සරල කරන්න.
වර්ග දෙකක් ලබා දී ඇත:
<?php
namespace Core\Data;
class Controller
{
}
?>
<?php
namespace Core\Data;
class Model
{
}
?>
index.php ගොනුවේ මෙම වර්ගවල වස්තු
නිර්මාණය කරන ආකාරය මෙයයි:
<?php
namespace Core\Data;
$controller = new \Core\Data\Controller;
$model = new \Core\Data\Model;
?>
වස්තූන් නිර්මාණය කරන namespace එක සැලකිල්ලට ගනිමින්, වස්තූන් නිර්මාණය කිරීම සඳහා වන කේතය සරල කරන්න.