Nimeruumide suhtelised teed OOP-s PHP-s
Oletame, et failis index.php tehakse
järgmine kutse:
<?php
namespace Admin\Data;
new \Core\Controller;
?>
Nagu te juba teate, tuleb klassi poole pöördumisel selle nimeruumi eest kirjutada kurakaldkriips. Tegelikult pole see kohustuslik. Kui seda kaldkriipsu ei kirjutata, arvutatakse kutsutav nimeruum suhteliselt praeguse nimeruumi suhtes. Vaadake näidet:
<?php
namespace Admin\Data;
new Core\Controller; // ekvivalentne \Admin\Data\Core\Controller
?>
Antud on kaks klassi:
<?php
namespace Modules\Shop\Core;
class Cart
{
}
?>
<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Core\Cart
{
}
?>
Lihtsustage klassi pärimise koodi, võttes arvesse seda, et meie klasside nimeruumidel on kattuv osa.
Antud on kaks klassi:
<?php
namespace Core\Data;
class Controller
{
}
?>
<?php
namespace Core\Data;
class Model
{
}
?>
Nende klasside objektid luuakse
failis index.php järgmiselt:
<?php
namespace Core\Data;
$controller = new \Core\Data\Controller;
$model = new \Core\Data\Model;
?>
Lihtsustage objektide loomise koodi, võttes arvesse nimeruumi, milles meie klasside objektid luuakse.