Relative stier i navnerom i OOP i PHP
La det i filen index.php skje
følgende kall:
<?php
namespace Admin\Data;
new \Core\Controller;
?>
Som du allerede vet, når du aksesserer en klasse skal man skrive en omvendt skråstrek foran dens navnerom. Egentlig er dette ikke nødvendig. Hvis denne skråstreken ikke skrives, vil det aktuelle navnerommet bli beregnet relativt til det nåværende navnerommet. Se eksempel:
<?php
namespace Admin\Data;
new Core\Controller; // tilsvarer \Admin\Data\Core\Controller
?>
Det er gitt to klasser:
<?php
namespace Modules\Shop\Core;
class Cart
{
}
?>
<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Core\Cart
{
}
?>
Forenkle koden for arv av klassen, ta i betraktning at navnerommene til våre klasser har en overlappende del.
Det er gitt to klasser:
<?php
namespace Core\Data;
class Controller
{
}
?>
<?php
namespace Core\Data;
class Model
{
}
?>
Slik opprettes objekter av disse klassene i
filen index.php:
<?php
namespace Core\Data;
$controller = new \Core\Data\Controller;
$model = new \Core\Data\Model;
?>
Forenkle koden for opprettelse av objekter, ta i betraktning navnerommet der objektene av våre klasser opprettes.