3 min de lectura

¿Qué son los namespaces en PHP?

Los namespaces o espacios de nombres son un contenedor o medio que nos permite agrupar y dar una mejor organización del código y que estas no tengan conflictos o colisiones por el nombre de clases y/o métodos. Entonces al hacer uso de los namespaces nos permite la compatibilidad con otras clases para sentirnos libres de usar los nombres más claros, por ejemplo si nos hemos bajado una clase de Internet para registrar “x” datos y nosotros creamos una clase persona con un método llamado “registro()” puede chocar con el nombre del método de la clase que bajamos de Internet haciendo que cambiemos uno de los dos métodos por “registro_persona()”.

Entonces lo que un namespace lo que hace es eliminar la ambigüedad que se pueda tener al hacer uso de varias clases, posterior mente se presenta un ejemplo de esta ambigüedad.

 

¿Cómo usar los namespaces en PHP?

Ya que hemos comprendido el concepto de namespace vamos a aplicarlo en PHP. Para este fin primero pongamos una situación queremos dos clases  que están en diferentes archivos y tienen un método llamado “información” que imprime un mensaje diferente cada una, este sería el aspecto de los archivos:

Archivo1.php:

Archivo2.php:

Si estos archivos los importamos a donde van a ser utilizados y lo corremos tal cual están nos aparecerá un Fatal error ya que php no puede resolver la ambigüedad y re declaración de la clase Arch.

Agregar namespaces a cada archivo

Para solucionar esto utilizamos namespace en cada archivo que es realmente muy fácil quedando de esta manera:

Archivo1.php :

Archivo2.php:

La palabra reservada para crear un espacio de nombres es namespace una recomendación para crear el namespace es nombrarlo como el archivo que lo contiene.

Uso de archivos con namespaces en PHP

Ahora bien ya tenemos los namespaces que nos permiten “resolver la ambigüedad” de la clase Arch, pero ahora la forma de “importar” estas clases cambia, vamos a ponerlas en el archivo “index.php” para estoy hay dos opciones la primera seria usando el namespace como tal y la segunda utilizando un alias.

Primera Opción:

Segunda Opción:

 

Esta última opción nos sirva para ahorrar el tener que nombrar todo el namespace si es que lo utilizaremos constantemente y pues nos permite una mejor legibilidad en códigos largos.

Deja tus comentarios

This site uses Akismet to reduce spam. Learn how your comment data is processed.