Vārdtelpu apakštelpas OOP PHP
Pieņemsim, ka mums ir sarežģītāka situācija:
administratoram ir jāizveido divas klases Page
- viena ar lapas datiem, bet otrā - ar šo datu attēlojumu.
Pieņemsim, ka pirmā klase atrodas
failā /admin/data/page.php, bet otrā
- failā /admin/view/page.php.
Iepriekšējās nodarbībās mēs jau nolēmām, ka visas klases no mapes
admin piederēs vārdtelpai
Admin. Tomēr tagad šajā pašā
vārdtelpā mums ir divu klašu konflikts.
Lai atrisinātu problēmu, var izveidot papildu
vārdtelpu apakštelpas. Piemēram, var izveidot
vārdtelpu Admin, un tajā apakštelpas
Data un View. Šajā gadījumā
šo apakštelpu nosaukumi vienkārši tiek rakstīti
caur slīpsvītru - gan norādot vārdtelpu,
gan veidojot klases objektu.
Šeit jāprecizē, ka apakštelpu ligzdošanas līmenis nav ierobežots (var veidot apakš-apakštelpas apakštelpās un tā tālāk).
Tātad, pabeigsim mūsu iepriekš aprakstīto
piemēru. Klasei Page no faila /admin/data/page.php
norādīsim vārdtelpu Admin\Data:
<?php
namespace Admin\Data;
class Page
{
}
?>
Klasei Page no faila /admin/view/page.php
norādīsim vārdtelpu Admin\View:
<?php
namespace Admin\View;
class Page
{
}
?>
Izveidosim mūsu klašu objektus:
<?php
require_once '/admin/data/page.php';
require_once '/admin/view/page.php';
$adminDataPage = new \Admin\Data\Page;
$adminViewPage = new \Admin\View\Page;
?>
Pieņemsim, ka jums ir mape modules/cart.
Iestatiet tā, lai visas klases no šīs mapes
piederētu vārdtelpai
Modules\Cart.
Pieņemsim, ka jums ir mape modules/shop/cart/.
Iestatiet tā, lai visas klases no šīs mapes
piederētu vārdtelpai
Modules\Shop\Cart.