Nimeruumide alamruumid OOP-s PHP-s
Olgu nüüd meil keerulisem olukord:
admini jaoks tuleb teha kaks klassi Page
- üks lehe andmetega ja teine - nende andmete
esitlusega. Olgu esimene klass failis
/admin/data/page.php ja teine
- failis /admin/view/page.php.
Eelmistes õppetükides oleme juba otsustanud, et kõik klassid kaustast
admin kuuluvad nimeruumi
Admin. Siiski, nüüd on selles
samas nimeruumis meil kahe klassi konflikt.
Probleemi lahendamiseks saab teha täiendavaid
alamruume. Näiteks saab teha
nimeruumi Admin ja selles alamruumid
Data ja View. Sellisel juhul
kirjutatakse nende alamruumide nimed
läbi kaldkriipsu - nii nimeruumi määramisel
kui ka objekti loomisel.
Siinkohal tuleb täpsustada, et alamruumide pesastustase ei ole piiratud (saab luua alam-alamruume alamruumides ja nii edasi).
Nii, lõpetagem ära meie ülalkirjeldatud
näide. Klassi Page jaoks failist /admin/data/page.php
määrame nimeruumi Admin\Data:
<?php
namespace Admin\Data;
class Page
{
}
?>
Klassi Page jaoks failist /admin/view/page.php
määrame nimeruumi Admin\View:
<?php
namespace Admin\View;
class Page
{
}
?>
Loome oma klasside objektid:
<?php
require_once '/admin/data/page.php';
require_once '/admin/view/page.php';
$adminDataPage = new \Admin\Data\Page;
$adminViewPage = new \Admin\View\Page;
?>
Olgu teil kaust modules/cart.
Seadke see nii, et kõik klassid sellest kaustast
kuuluvad nimeruumi
Modules\Cart.
Olgu teil kaust modules/shop/cart/.
Seadke see nii, et kõik klassid sellest kaustast
kuuluvad nimeruumi
Modules\Shop\Cart.