Relativne poti v imenskem prostoru v OOP v PHP
Recimo, da se v datoteki index.php izvede
naslednji klic:
<?php
namespace Admin\Data;
new \Core\Controller;
?>
Kot že veste, je treba pri dostopu do razreda pred njegovim imenskim prostorom napisati obratno poševnico. Pravzaprav to ni obvezno. Če te poševnice ne napišete, se bo klicani imenski prostor izračunal relativno glede na trenutni imenski prostor. Poglejte primer:
<?php
namespace Admin\Data;
new Core\Controller; // enakovredno \Admin\Data\Core\Controller
?>
Podana sta dva razreda:
<?php
namespace Modules\Shop\Core;
class Cart
{
}
?>
<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Core\Cart
{
}
?>
Poenostavite kodo za dedovanje razreda, upoštevajoč dejstvo, da imajo imenski prostori naših razredov sko skupne dele.
Podana sta dva razreda:
<?php
namespace Core\Data;
class Controller
{
}
?>
<?php
namespace Core\Data;
class Model
{
}
?>
Tako se ustvarjajo objekti teh razredov v
datoteki index.php:
<?php
namespace Core\Data;
$controller = new \Core\Data\Controller;
$model = new \Core\Data\Model;
?>
Poenostavite kodo za ustvarjanje objektov, upoštevajoč imenski prostor, v katerem se ustvarjajo objekti naših razredov.