Sintassi degli spazi dei nomi nella OOP in PHP
Per assegnare a una classe uno spazio dei nomi, è necessario
scrivere come prima riga del file in cui è memorizzata questa
classe il comando namespace,
e dopo di esso, separato da uno spazio, il nome di questo
spazio dei nomi.
Se una classe appartiene a uno spazio dei nomi, per creare un oggetto della classe sarà necessario specificare non solo il nome della classe, ma anche il suo spazio dei nomi, separati da una barra rovesciata. Diamo un'occhiata a un esempio.
Supponiamo di avere una classe Page, che non appartiene
a nessuno spazio dei nomi. Allora creeremo un oggetto
di questa classe nel modo seguente:
<?php
$page = new Page;
?>
Supponiamo ora che questa classe appartenga allo spazio dei nomi
Admin. In questo caso, creeremo l'oggetto di questa
classe già in questo modo:
<?php
$page = new \Admin\Page;
?>
Separiamo le classi per gli utenti e le classi per gli amministratori in diversi spazi dei nomi, per evitare i conflitti di classe descritti sopra.
Per la classe Page dal file /admin/page.php
indichiamo lo spazio dei nomi Admin:
<?php
namespace Admin;
class Page
{
}
?>
E per la classe Page dal file /users/page.php
indichiamo lo spazio dei nomi Users:
<?php
namespace Users;
class Page
{
}
?>
Creiamo ora nel file /index.php
un oggetto della prima e della seconda
classe Page:
<?php
require_once '/admin/page.php';
require_once '/users/page.php';
$adminPage = new \Admin\Page;
$usersPage = new \Users\Page;
?>
Supponiamo che tu abbia una cartella core e una cartella
project. In ogni cartella c'è la propria
classe Controller. Fai in modo che
queste classi appartengano a spazi dei nomi diversi.
Nel file index.php crea oggetti
della prima e della seconda classe.