Njia Relatif katika Nafasi ya Majina katika OOP katika PHP
Hebu kwenye faili index.php ifanyike
wito ufuatao:
<?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:
<?php
namespace Admin\Data;
new Core\Controller; // sawa na \Admin\Data\Core\Controller
?>
Imetolewa madarasa mawili:
<?php
namespace Modules\Shop\Core;
class Cart
{
}
?>
<?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.
Imetolewa madarasa mawili:
<?php
namespace Core\Data;
class Controller
{
}
?>
<?php
namespace Core\Data;
class Model
{
}
?>
Hivi ndivyo vitu vya madarasa haya vinavyoundwa kwenye
faili 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.