Rrugët relative në hapësirat e emrave në OOP në PHP
Le të themi në skedarin index.php ndodh
thirrja e mëposhtme:
<?php
namespace Admin\Data;
new \Core\Controller;
?>
Siç e dini tashmë, kur i referoheni një klase përpara hapësirës së emrit të saj duhet të shkruhet backslash. Në fakt kjo nuk është e detyrueshme. Nëse ky backslash nuk shkruhet, atëherë hapësira e emrave që thirret do të llogaritet në lidhje me hapësirën aktuale të emrave. Shihni shembullin:
<?php
namespace Admin\Data;
new Core\Controller; // ekuivalente me \Admin\Data\Core\Controller
?>
Janë dhënë dy klasa:
<?php
namespace Modules\Shop\Core;
class Cart
{
}
?>
<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Core\Cart
{
}
?>
Thjeshtoni kodin për trashëgiminimin e klasës, duke marrë parasysh që hapësirat e emrave të klasave tona kanë pjesë që përputhen.
Janë dhënë dy klasa:
<?php
namespace Core\Data;
class Controller
{
}
?>
<?php
namespace Core\Data;
class Model
{
}
?>
Kështu krijohen objektet e këtyre klasave në
skedarin index.php:
<?php
namespace Core\Data;
$controller = new \Core\Data\Controller;
$model = new \Core\Data\Model;
?>
Thjeshtoni kodin për krijimin e objekteve, duke marrë parasysh hapësirën e emrave në të cilën krijohen objektet e klasave tona.