Namnrymdssyntax i OOP i PHP
För att tilldela en klass ett namnrymd, behöver du
som första rad i filen där denna klass är lagrad
skriva kommandot namespace,
och efter det med ett mellanslag - namnet på denna
namnrymd.
Om en klass tillhör ett namnrymd, måste du för att skapa ett objekt av klassen ange både klassens namn och dess namnrymd, separerade med omvänt snedstreck. Låt oss titta på ett exempel.
Låt oss säga att vi har en klass Page som inte tillhör
något namnrymd. Då skapar vi ett objekt
av denna klass på följande sätt:
<?php
$page = new Page;
?>
Låt oss nu säga att denna klass tillhör namnrymdet
Admin. I detta fall kommer vi att skapa ett objekt av denna
klass redan på detta sätt:
<?php
$page = new \Admin\Page;
?>
Låt oss dela upp klasserna för användare och klasser för admin i olika namnrymden, för att undvika de ovan beskrivna klasskonflikterna.
För klassen Page från filen /admin/page.php
anger vi namnrymdet Admin:
<?php
namespace Admin;
class Page
{
}
?>
Och för klassen Page från filen /users/page.php
anger vi namnrymdet Users:
<?php
namespace Users;
class Page
{
}
?>
Låt oss nu i filen /index.php
skapa ett objekt av den ena och den andra
klassen Page:
<?php
require_once '/admin/page.php';
require_once '/users/page.php';
$adminPage = new \Admin\Page;
$usersPage = new \Users\Page;
?>
Anta att du har mappen core och mappen
project. I varje mapp finns en egen
klass Controller. Se till att
dessa klasser tillhör olika namnrymden.
I filen index.php, skapa objekt av
båda klasserna.