Nimitilojen syntaksi OOP:ssa PHP:ssä
Asettaaksesi luokalle nimitilan, tulee
luokan sisältävän tiedoston ensimmäisellä
rivillä kirjoittaa komento namespace,
ja sen jälkeen välilyönnillä erotettuna - kyseisen
nimitilan nimi.
Jos luokka kuuluu johonkin nimitilaan, luokan olion luomista varten on ilmoitettava paitsi luokan nimi, myös sen nimitila, erotettuna kenoviivalla. Katsotaanpa esimerkkiä.
Oletetaan, että meillä on luokka Page, joka ei kuulu
mihinkään nimitilaan. Tällöin luomme tämän
luokan olion seuraavasti:
<?php
$page = new Page;
?>
Oletetaan nyt, että tämä luokka kuuluu nimitilaan
Admin. Tässä tapauksessa luomme tämän
luokan olion jo tällä tavalla:
<?php
$page = new \Admin\Page;
?>
Erotellaan käyttäjien ja ylläpitäjien luokat eri nimitiloihin, vähentääksemme edellä kuvattuja luokkakonflikteja.
Asetetaan tiedostossa /admin/page.php olevalle
luokalle Page nimitilaksi Admin:
<?php
namespace Admin;
class Page
{
}
?>
Ja asetetaan tiedostossa /users/page.php olevalle
luokalle Page nimitilaksi Users:
<?php
namespace Users;
class Page
{
}
?>
Luodaan nyt tiedostossa /index.php
molempien luokkien Page
oliot:
<?php
require_once '/admin/page.php';
require_once '/users/page.php';
$adminPage = new \Admin\Page;
$usersPage = new \Users\Page;
?>
Oletetaan, että sinulla on kansio core ja kansio
project. Kummassakin kansiossa on oma
luokkansa Controller. Varmista, että
nämä luokat kuuluvat eri nimitiloihin.
Tiedostossa index.php luo kummankin
luokan oliot.