Espacios de nombres en PHP (I). Introducción.

Todos hemos oído hablar alguna vez de los espacios de nombres, o namespaces (ns), en terminología anglosajona. Tal vez en otro contexto (cómo XML, por ejemplo). En PHP constituyen una valiosa herramienta de la que vamos a ocuparnos en estos artículos. En su definición más aceptada, son una forma de encapsular elementos (en el contexto de PHP, estamos hablando de constantes, funciones y clases). Esto nos facilita crear código reutilizable, permitiendo a otros desarrolladores implementar con facilidad nuestras librerías, evitando colisiones de nombres que pudieran surgir con sus propios elementos, y viceversa. Nosotros podemos implementar librerías de terceros, con la misma prerrogativa.

JavaScript 2015 (VI). Generadores.

Cuando estamos recorriendo un bucle nos encontramos, en ocasiones, con que, dada una condición o evento determinado, es necesario interrumpir la ejecución de dicho bucle, retornando el control al proceso JavaScript que lo invocó. Al mismo tiempo, es necesario conservar el valor de una variable (o de más de una) de tal modo que, cuando vuelva a invocarse el bucle, no se inicialice de nuevo, sino que conserve el valor que tenía. Esta es una necesidad que se nos ha dado a todos alguna vez y, dado que, hasta ahora, no era posible hacer esto, hemos obviado dicha necesidad, buscando soluciones alternativas, en ocasiones muy enrevesadas, para lograr el resultado deseado. Por primera vez, JavaScript nos ofrece la posibilidad de ejecutar un bucle, interrumpiendolo cuando sea necesario, y manteniendo los valores adquiridos en el mismo por una o más variables. Estas herramientas se conocen con el nombre de Generadores.

Insertar elementos en medio de una matriz en PHP

PHP nos ofrece varias posibilidades para agregar elementos a una matriz. Desafortunadamente, con las funciones nativas del lenguaje sólo podemos efectuar la inserción de un elemento al principio o al final de la matriz, pero no en una posición específica “en medio”. No es una necesidad que se plantee muy a menudo, porque, dada una matriz cualquiera, sea unidimensional o bidimensional, podemos ordenarla por varios criterios. Sin embargo, cuando nos surge esta necesidad concreta, el lenguaje no nos ofrece ninguna solución clara. Recientemente me surgió esta situación en un proyecto en el que estoy trabajando actualmente.