Introduction aux espaces de noms en POO en PHP
Si, lors de l'exécution d'un script PHP, deux classes portent le même nom, elles entreront en conflit, ce qui entraînera une erreur fatale. Ce n'est en fait pas très pratique, car il faut constamment veiller à l'unicité des noms.
Prenons l'exemple de la situation suivante :
vous avez un site sur lequel il y a des utilisateurs
et un administrateur. Dans le dossier users sont stockées
les classes pour les utilisateurs, et dans le dossier admin
- les classes pour l'administrateur.
Supposons que pour les utilisateurs et pour l'administrateur, une certaine
classe Page soit nécessaire, responsable de certaines
pages du site. Dans ce cas, il y aura
une classe pour les utilisateurs et une autre pour l'administrateur. C'est dans une telle
situation que nous risquons un conflit de noms.
La façon la plus simple de résoudre ce conflit
est de donner des noms différents aux classes, par exemple,
UsersPage et AdminPage. Cette
méthode, cependant, conduit progressivement à l'apparition
de noms de classes très longs.
En PHP, il existe une autre façon de résoudre le problème - les espaces de noms. L'essentiel est la suivante : chaque classe peut appartenir à un certain espace de noms et ainsi l'unicité des noms de classes doit être respectée uniquement à l'intérieur de cet espace.
Ainsi, pour résoudre notre problème, nous pouvons
faire ce qui suit : attribuer une classe Page
à un espace de noms, par exemple,
Users, et la deuxième classe Page
à un autre espace de noms, par exemple,
Admin.