Vardų erdvių pakopos OOP PHP
Tarkime, dabar turime sudėtingesnę situaciją:
administrui reikia sukurti dvi klases Page
- vieną su puslapio duomenimis, o antrą - su šių
duomenų atvaizdavimu. Tarkime, pirmoji klasė yra
faile /admin/data/page.php, o antroji
- faile /admin/view/page.php.
Ankstesnėse pamokose jau nusprendėme, kad visos klasės iš
aplanko admin priklausys vardų erdvei
Admin. Tačiau dabar šioje pačioje
erdvėje turime dviejų klasių konfliktą.
Problemai spręsti galima sukurti papildomas
vardų erdvių pakopas. Pavyzdžiui, galima sukurti
vardų erdvę Admin, o joje pakopas
Data ir View. Tokiu atveju
šių pakopų pavadinimai tiesiog rašomi
per atvirkštinį pasvirąjį brūkšnį - tiek nustatant vardų erdvę,
tiek kuriant klasės objektą.
Čia reikia patikslinti, kad pakopų įdėjimo lygis neribojamas (galima kurti pakopas pakopose ir taip toliau).
Taigi, užbaigkime mūsų aukščiau aprašytą
pavyzdį. Klasei Page iš failo /admin/data/page.php
nurodykime vardų erdvę Admin\Data:
<?php
namespace Admin\Data;
class Page
{
}
?>
Klasei Page iš failo /admin/view/page.php
nurodykime vardų erdvę Admin\View:
<?php
namespace Admin\View;
class Page
{
}
?>
Sukurkime mūsų klasių objektus:
<?php
require_once '/admin/data/page.php';
require_once '/admin/view/page.php';
$adminDataPage = new \Admin\Data\Page;
$adminViewPage = new \Admin\View\Page;
?>
Tarkime, jūs turite aplanką modules/cart.
Padarykite taip, kad visos klasės iš šio aplanko
priklausytų vardų erdvei
Modules\Cart.
Tarkime, jūs turite aplanką modules/shop/cart/.
Padarykite taip, kad visos klasės iš šio aplanko
priklausytų vardų erdvei
Modules\Shop\Cart.