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:

/admin/data/page.php<?php
  namespace Admin\Data;
  
  class Page
  {
    
  }
?>

Klasei Page no faila /admin/view/page.php norādīsim vārdtelpu Admin\View:

/admin/view/page.php<?php
  namespace Admin\View;
  
  class Page
  {
    
  }
?>

Izveidosim mūsu klašu objektus:

/index.php<?php
  require_once '/admin/data/page.php';
  require_once '/admin/view/page.php';
  
  $adminDataPage = new \Admin\Data\Page;
  $adminViewPage = new \Admin\View\Page;
?>
Задание 1

Pieņemsim, ka jums ir mape modules/cart. Iestatiet tā, lai visas klases no šīs mapes piederētu vārdtelpai Modules\Cart.

Задание 2

Pieņemsim, ka jums ir mape modules/shop/cart/. Iestatiet tā, lai visas klases no šīs mapes piederētu vārdtelpai Modules\Shop\Cart.