Relatiewe paaie in naamruimtes in OOP in PHP
Laat in lêer index.php die
volgende oproep plaasvind:
<?php
namespace Admin\Data;
new \Core\Controller;
?>
Soos jy reeds weet, moet 'n agteroorskuisstreep voor die naamruimte van 'n klas geskryf word wanneer daar daarna verwys word. Eintlik is dit nie nodig nie. As hierdie streep nie geskryf word nie, sal die opgeroepen naamruimte relatief tot die huidige naamruimte bereken word. Kyk na die voorbeeld:
<?php
namespace Admin\Data;
new Core\Controller; // ekwivalent aan \Admin\Data\Core\Controller
?>
Twee klasse word gegee:
<?php
namespace Modules\Shop\Core;
class Cart
{
}
?>
<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Core\Cart
{
}
?>
Vereenvoudig die kode vir oorerwing van die klas, met inagneming van die feit dat die naamruimtes van ons klasse 'n ooreenstemmende gedeelte het.
Twee klasse word gegee:
<?php
namespace Core\Data;
class Controller
{
}
?>
<?php
namespace Core\Data;
class Model
{
}
?>
So word voorwerpe van hierdie klasse geskep in
lêer index.php:
<?php
namespace Core\Data;
$controller = new \Core\Data\Controller;
$model = new \Core\Data\Model;
?>
Vereenvoudig die kode vir die skep van voorwerpe, met inagneming van die naamruimte waarin voorwerpe van ons klasse geskep word.