Relativni putanje u prostorima imena u OOP u PHP-u
Neka se u fajlu index.php odvija
sljedeći poziv:
<?php
namespace Admin\Data;
new \Core\Controller;
?>
Kao što već znate, prilikom pozivanja klase ispred njegovog prostora imena treba pisati obrnutu kosu crtu. Zapravo, ovo nije obavezno. Ako se ta kosa crta ne napiše, tada će se pozvani prostor imena računati relativno u odnosu na trenutni prostor. Pogledajte primer:
<?php
namespace Admin\Data;
new Core\Controller; // ekvivalentno je sa \Admin\Data\Core\Controller
?>
Data su dva klasa:
<?php
namespace Modules\Shop\Core;
class Cart
{
}
?>
<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Core\Cart
{
}
?>
Pojednostavite kod za nasleđivanje klase, uzimajući u obzir to da prostori imena naših klasa imaju podudarajući deo.
Data su dva klasa:
<?php
namespace Core\Data;
class Controller
{
}
?>
<?php
namespace Core\Data;
class Model
{
}
?>
Ovako se kreiraju objekti ovih klasa u
fajlu index.php:
<?php
namespace Core\Data;
$controller = new \Core\Data\Controller;
$model = new \Core\Data\Model;
?>
Pojednostavite kod za kreiranje objekata, uzimajući u obzir prostor imena u kome se kreiraju objekti naših klasa.