Релативни путеви у простору имена у ООП у PHP
Нека у фајлу index.php буде
следећи позив:
<?php
namespace Admin\Data;
new \Core\Controller;
?>
Као што већ знате, при позивању класе испред њеног простора имена треба писати обрнуту косу црту. Заправо то није обавезно. Ако се ова коса црта не напише, онда ће се позвани простор имена израчунати релативно у односу на тренутни простор. Погледајте пример:
<?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
{
}
?>
Поједноставите код за наслеђивање класе, узимајући у обзир то да простори имена наших класа имају део који се поклапа.
Дате су две класе:
<?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;
?>
Поједноставите код за креирање објеката, узимајући у обзир простор имена у коме се креирају објекти наших класа.