Introducción a los espacios de nombres en POO en PHP
Si al ejecutar un script PHP hay dos clases con el mismo nombre, entrarán en conflicto, lo que provocará un error fatal. Esto en realidad no es muy conveniente, ya que constantemente hay que controlar la unicidad de los nombres.
Como ejemplo, consideremos la siguiente situación:
tienes un sitio web que tiene usuarios
y administradores. Al mismo tiempo, en la carpeta users se almacenan
las clases para los usuarios, y en la carpeta admin
- las clases para el administrador.
Supongamos que tanto para los usuarios como para los administradores se necesita una cierta
clase Page, responsable de algunas
páginas del sitio. Al mismo tiempo, para los usuarios habrá
su propia clase, y para el administrador, la suya. En tal
caso, nos espera un conflicto de nombres.
La forma más simple de resolver este conflicto
es dar nombres diferentes a las clases, por ejemplo,
UsersPage y AdminPage. Sin embargo, este
camino gradualmente conduce a la aparición de
nombres de clases muy largos.
En PHP existe otra forma de resolver el problema: los espacios de nombres. La esencia es la siguiente: cada clase puede pertenecer a algún espacio de nombres y, en este caso, la unicidad de los nombres de las clases debe cumplirse solo dentro de este espacio.
Es decir, para resolver nuestro problema podemos
hacer lo siguiente: asignar una clase Page
a algún espacio de nombres, por ejemplo,
Users, y la segunda clase Page
asignarla a otro espacio de nombres, por ejemplo,
Admin.