Relative stier i navnerum i OOP i PHP
Lad der i filen index.php foretages
følgende kald:
<?php
namespace Admin\Data;
new \Core\Controller;
?>
Som du allerede ved, skal der ved henvisning til en klasse skrives et omvendt skråstreg foran dens navnerum. Det er faktisk ikke nødvendigt. Hvis denne skråstreg ikke skrives, vil det påkaldte navnerum blive beregnet relativt til det aktuelle navnerum. Se eksemplet:
<?php
namespace Admin\Data;
new Core\Controller; // svarende til \Admin\Data\Core\Controller
?>
Der er givet to klasser:
<?php
namespace Modules\Shop\Core;
class Cart
{
}
?>
<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Core\Cart
{
}
?>
Forenkl koden for arv af klassen, under hensyntagen til at vores klassers navnerum har en fælles del.
Der er givet to klasser:
<?php
namespace Core\Data;
class Controller
{
}
?>
<?php
namespace Core\Data;
class Model
{
}
?>
Sådan oprettes objekter af disse klasser i
filen index.php:
<?php
namespace Core\Data;
$controller = new \Core\Data\Controller;
$model = new \Core\Data\Model;
?>
Forenkl koden for oprettelse af objekter, under hensyntagen til det navnerum, hvori objekter af vores klasser oprettes.