⊗ppOpNsRPt 100 of 107 menu

Relatieve paden in naamruimten in OOP in PHP

Stel dat in het bestand index.php de volgende aanroep plaatsvindt:

<?php namespace Admin\Data; new \Core\Controller; ?>

Zoals je al weet, moet bij het benaderen van een klasse voor de naamruimte een backslash worden geschreven. Eigenlijk is dit niet verplicht. Als deze slash niet wordt geschreven, dan wordt de aangeroepen naamruimte berekend relatief ten opzichte van de huidige naamruimte. Zie voorbeeld:

<?php namespace Admin\Data; new Core\Controller; // equivalent aan \Admin\Data\Core\Controller ?>

Er zijn twee klassen gegeven:

<?php namespace Modules\Shop\Core; class Cart { } ?>
<?php namespace Modules\Shop; class UserCart extends \Modules\Shop\Core\Cart { } ?>

Vereenvoudig de code voor overerving van de klasse, rekening houdend met het feit dat de naamruimten van onze klassen een overlappend deel hebben.

Er zijn twee klassen gegeven:

<?php namespace Core\Data; class Controller { } ?>
<?php namespace Core\Data; class Model { } ?>

Zo worden objecten van deze klassen gemaakt in het bestand index.php:

<?php namespace Core\Data; $controller = new \Core\Data\Controller; $model = new \Core\Data\Model; ?>

Vereenvoudig de code voor het maken van objecten, rekening houdend met de naamruimte waarin objecten van onze klassen worden gemaakt.

swcsrosvhy