Introduzione ai namespace nella OOP in PHP
Se durante l'esecuzione di uno script PHP sono presenti due classi con lo stesso nome, esse entreranno in conflitto, portando a un errore fatale. Questo in realtà non è molto conveniente, poiché è necessario monitorare costantemente l'unicità dei nomi.
Per esempio, consideriamo la seguente situazione:
hai un sito web con utenti
e amministratori. Nella cartella users sono memorizzate
le classi per gli utenti, mentre nella cartella admin
- le classi per l'amministratore.
Supponiamo che sia per gli utenti che per gli amministratori sia necessaria una certa
classe Page, responsabile di alcune
pagine del sito. In questo caso, per gli utenti ci sarà
la propria classe, e per l'amministratore - la propria. In una situazione
del genere, ci aspettiamo un conflitto di nomi.
Il modo più semplice per risolvere questo conflitto
- dare nomi diversi alle classi, per esempio,
UsersPage e AdminPage. Tuttavia, questo
approccio porta gradualmente alla comparsa di
nomi di classe molto lunghi.
In PHP esiste un altro modo per risolvere il problema - i namespace. L'essenza è la seguente: ogni classe può appartenere a un certo namespace e l'unicità dei nomi delle classi deve essere mantenuta solo all'interno di quel namespace.
Cioè, per risolvere il nostro problema possiamo
fare quanto segue: assegnare una classe Page
a un namespace, per esempio,
Users, e la seconda classe Page
assegnarla a un altro namespace, per esempio,
Admin.