Namespace-syntaks i OOP i PHP
For at tildele en klasse et namespace, skal du
skrive kommandoen namespace som den første linje i filen,
hvor klassen er gemt,
og efter det med et mellemrum - navnet på dette
namespace.
Hvis en klasse tilhører et namespace, skal du for at oprette et objekt af klassen angive både klassens navn og dets namespace, adskilt med omvendt skråstreg. Lad os se på et eksempel.
Lad os sige, at vi har en klasse Page, som ikke tilhører
et namespace. Så opretter vi et objekt
af denne klasse på følgende måde:
<?php
$page = new Page;
?>
Lad os nu sige, at denne klasse tilhører namespace
Admin. I dette tilfælde vil vi oprette et objekt af denne
klasse på denne måde:
<?php
$page = new \Admin\Page;
?>
Lad os opdele klasser til brugere og klasser til administratorer i forskellige namespaces, for at undgå de ovenfor beskrevne klassekonflikter.
For klassen Page fra filen /admin/page.php
angiver vi namespace Admin:
<?php
namespace Admin;
class Page
{
}
?>
Og for klassen Page fra filen /users/page.php
angiver vi namespace Users:
<?php
namespace Users;
class Page
{
}
?>
Lad os nu i filen /index.php
oprette et objekt af begge
klasser Page:
<?php
require_once '/admin/page.php';
require_once '/users/page.php';
$adminPage = new \Admin\Page;
$usersPage = new \Users\Page;
?>
Lad os sige, at du har mappen core og mappen
project. I hver mappe er der deres egen
klasse Controller. Sørg for, at
disse klasser tilhører forskellige namespaces.
I filen index.php skal du oprette objekter
af begge klasser.