Yksinkertaistettu nimiavaruuksien käsittely OOP:ssa PHP:ssä
Oletetaan, että meillä on seuraava luokka Controller:
<?php
namespace Admin;
class Controller
{
}
?>
Oletetaan myös, että on olemassa luokka Page, joka perii
luokasta Controller:
<?php
namespace Admin;
class Page extends \Admin\Controller
{
}
?>
Kuten näette, perinnässä määritämme vanhemman nimen yhdessä nimiavaruuden kanssa. Tässä esimerkissä on kuitenkin vivahde: molemmat luokat kuuluvat samaan nimiavaruuteen. Tällaisessa tapauksessa luokkaan viitatessa voi yksinkertaisesti kirjoittaa sen luokan nimen, näin:
<?php
namespace Admin;
class Page extends Controller
{
}
?>
Annettu kaksi luokkaa:
<?php
namespace Modules\Shop;
class Cart
{
}
?>
<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Cart
{
}
?>
Yksinkertaista koodi luokan perinnälle, ottaen huomioon sen, että molemmat luokat ovat samassa nimiavaruudessa.