Anuncios

Bienvenidos sean a este post, hoy hablaremos sobre como son los namespaces en PHP.

Anuncios
Anuncios

Estos los podemos comparar con la estructura de directorios o de carpetas de un sistema operativo, porque su proposito principal es permitir clases con el mismo nombre pero en diferentes espacio de nombres (namespaces), al igual que sucede con el lenguaje los namespaces son case-sensitive, es decir que distinguen entre mayusculas y minusculas, la buena practica dice que deben comenzar con minusculas pero cada nueva palabra que la componga debe comenzar en mayusculas para distinguir correctamente el nombre, para entender el concepto veamos un ejemplo simple:

miEspacioInterno
elEscritorioDeTinchicus
Anuncios

Como pueden ver por cada palabra que la componen la primera es mayuscula, recuerden que esto es una buena practica recomendada por convenciones pero no es obligatorio y pueden usar los nombres que deseen como lo deseen.

Anuncios

Para este caso vamos a suponer un ejemplo donde tenemos una clase llamada Informes y en otro directorio tenemos otra clase con el mismo nombre, la respuesta natural del lenguaje seria que no podriamos usar a ambas clases en el mismo archivo porque entrarian en conflictos sin embargo si cada una de las clases tiene un namespace del directorio donde estan almacenados esto nos permitira trabajar con ellas en el mismo archivo.

Anuncios

Si lo aplicamos al sistema operativo para entender el concepto, vamos a suponer que tenemos un archivo llamado archivo1.txt en el directorio /home/tinchicus y otro en /home/mirandma pero ambos archivos no pueden co-existir en el mismo directorio, es mas para poder acceder al archivo por fuera del directorio debemos agregarle todo el path completo, /home/tinchicus/archivo1.txt, esto mismo se aplica a los namespaces.

Anuncios

Por lo tanto, un namespace es una referencia a la ubicacion dentro de la estructura de directorios, veamos una ubicacion de una clase:

/var/www/HTML/app/codes/informes/Informes.php
Anuncios

Suponiendo que nuestro codigo se encuentre en el directorio app, por lo tanto para crear el namespace a la clase sera:

namespace codes\informes;
Anuncios

Como pueden ver el namespace se creara con todos los directorios necesarios hasta llegar a la clase deseada, podemos decir que es un alias a la ubicacion de nuestra clase.

Anuncios

En resumen, hoy hemos visto al namespace, como es, para que sirve, como es el concepto de namespace aplicado al lenguaje, como nos va a beneficiar en los proximos posts, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.50

Anuncio publicitario