Syntaks for navnerom i OOP i PHP
For å tildele en klasse et navnerom, må du
skrive kommandoen namespace som den første linjen i filen
hvor denne klassen er lagret,
og etter det med et mellomrom - navnet på dette
navnerommet.
Hvis en klasse tilhører et navnerom, må du for å opprette et objekt av klassen angi både klassens navn og dets navnerom, atskilt med omvendt skråstrek. La oss se på et eksempel.
La oss si at vi har en klasse Page som ikke tilhører
noe navnerom. Da vil vi opprette et objekt
av denne klassen på følgende måte:
<?php
$page = new Page;
?>
La oss nå si at denne klassen tilhører navnerommet
Admin. I dette tilfellet vil vi opprette et objekt av denne
klassen slik:
<?php
$page = new \Admin\Page;
?>
La oss fordelle klassene for brukere og klassene for administratorer i forskjellige navnerom, for å unngå de ovenfor beskrevne klassekonfliktene.
For klassen Page fra filen /admin/page.php
angi navnerommet Admin:
<?php
namespace Admin;
class Page
{
}
?>
Og for klassen Page fra filen /users/page.php
angi navnerommet Users:
<?php
namespace Users;
class Page
{
}
?>
La oss nå i filen /index.php
opprette et objekt av både den ene og den andre
klassen Page:
<?php
require_once '/admin/page.php';
require_once '/users/page.php';
$adminPage = new \Admin\Page;
$usersPage = new \Users\Page;
?>
La oss si at du har en mappe core og en mappe
project. I hver av mappene er det sin egen
klasse Controller. Gjør slik at
disse klassene tilhører forskjellige navnerom.
I filen index.php opprett objekter
av både den ene og den andre klassen.