OOP vardų erdvių sintaksė PHP
Norint nustatyti klasei vardų erdvę, reikia
pirmoje failo, kuriame saugoma ši
klasė, eilutėje parašyti komandą namespace,
o po jos per tarpą - šios vardų erdvės pavadinimą.
Jei klasė priklauso kokiai nors vardų erdvei, tada norint sukurti klasės objektą reikės nurodyti ne tik klasės pavadinimą, bet ir jos vardų erdvę, atskirtus atgaliniu brūkšniu. Pažiūrėkime pavyzdžiu.
Tarkime, turime klasę Page, nepriklausančią
jokiai vardų erdvei. Tada šios klasės objektą
sukursime taip:
<?php
$page = new Page;
?>
Tarkime, kad dabar ši klasė priklauso vardų
erdvei Admin. Šiuo atveju šios klasės objektą
mes jau kursime taip:
<?php
$page = new \Admin\Page;
?>
Išskirkime vartotojų klases ir administratoriaus klases į skirtingas vardų erdves, kad išvengtume anksčiau aprašytų klasių konfliktų.
Klasei Page iš failo /admin/page.php
nurodykime vardų erdvę Admin:
<?php
namespace Admin;
class Page
{
}
?>
O klasei Page iš failo /users/page.php
nurodykime vardų erdvę Users:
<?php
namespace Users;
class Page
{
}
?>
Dabar faile /index.php
sukurkime vieno ir kito
klasės Page objektą:
<?php
require_once '/admin/page.php';
require_once '/users/page.php';
$adminPage = new \Admin\Page;
$usersPage = new \Users\Page;
?>
Tarkime, turite aplanką core ir aplanką
project. Kiekviename aplanke yra savo
klasė Controller. Padarykite taip, kad
šios klasės priklausytų skirtingoms vardų erdvėms.
Faile index.php sukurkite vieno ir kito klasių objektus.