Supaprastintas vardų erdvių naudojimas OOP PHP
Tarkime, kad turime šią klasę Controller:
<?php
namespace Admin;
class Controller
{
}
?>
Tarkime, kad taip pat yra klasė Page, kuri paveldi
iš klasės Controller:
<?php
namespace Admin;
class Page extends \Admin\Controller
{
}
?>
Kaip matote, paveldėjime nurodome tėvo klasės pavadinimą kartu su vardų erdve. Šiame pavyzdyje, tačiau, yra niuansas: abi klasės priklauso tai pačiai vardų erdvei. Tokiu atveju, kreipiantis į klasę galima tiesiog parašyti tos klasės pavadinimą, štai taip:
<?php
namespace Admin;
class Page extends Controller
{
}
?>
Duotos dvi klasės:
<?php
namespace Modules\Shop;
class Cart
{
}
?>
<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Cart
{
}
?>
Supaprastinkite kodą klasės paveldėjimui, atsižvelgdami į tai, kad abi klasės yra toje pačioje vardų erdvėje.