Podprostori imena u OOP-u u PHP
Neka sada imamo složeniju situaciju:
za administratora treba napraviti dve klase Page
- jednu sa podacima strane, a drugu - sa prikazom
tih podataka. Neka se prva klasa nalazi
u fajlu /admin/data/page.php, a druga
- u fajlu /admin/view/page.php.
U prethodnim lekcijama već smo rešili da će sve klase iz fascikle
admin pripadati prostoru
imena Admin. Međutim, sada u ovom
istom prostoru imamo konflikt dve klase.
Za rešavanje problema mogu se napraviti dodatni
podprostori imena. Na primer, može se napraviti
prostor imena Admin, a u njemu podprostori
Data i View. U takvom slučaju
imena ovih podprostora se jednostavno pišu
putem obrnute kose crte - kako pri zadavanju prostora
imena, tako i pri kreiranju objekta klase.
Ovde treba napomenuti da nivo ugnježdenosti podprostora nije ograničen (mogu se praviti pod-podprostori u podprostorima i tako dalje).
Dakle, hajde da dovršimo naš gore opisan
primer. Za klasu Page iz fajla /admin/data/page.php
odredimo prostor imena Admin\Data:
<?php
namespace Admin\Data;
class Page
{
}
?>
Za klasu Page iz fajla /admin/view/page.php
odredimo prostor imena Admin\View:
<?php
namespace Admin\View;
class Page
{
}
?>
Napravimo objekte naših klasa:
<?php
require_once '/admin/data/page.php';
require_once '/admin/view/page.php';
$adminDataPage = new \Admin\Data\Page;
$adminViewPage = new \Admin\View\Page;
?>
Neka imate fasciklu modules/cart.
Uredite tako da sve klase iz ove fascikle
pripadaju prostoru imena
Modules\Cart.
Neka imate fasciklu modules/shop/cart/.
Uredite tako da sve klase iz ove fascikle
pripadaju prostoru imena
Modules\Shop\Cart.