Espacios de nombres en PHP (II). Agrupando Namespaces.

En el artículo anterior nos introdujimos en el uso de los espacios de nombres, o namepaces (en muchos textos aparecen, abreviadamente, como ns). En este artículo vamos a ver como usar dos espacios de nombres diferentes en un mismo script. Antes de entrar en materia debo advertirte que lo que vamos a aprender en este artículo es una práctica que, aún siendo sintácticamente legal en PHP, se encuentra sumamente desaconsejada, en orden a tener un código limpio y reutilizable. En realidad, no existe ninguna razón clara para usar lo que vamos a ver aquí, y sí hay muchas para no usarlo. La más obvia es que nuestro código será más limpio y reutilizable cuanto más encapsulado esté. En efecto, si yo necesito emplear los elementos que se encuentran bajo un determinado espacio de nombres, no hay ninguna razón por la que deba cargar un script que incluya otros espacios de nombres cuyos elementos no voy a necesitar. A menudo, la diferencia entre encapsulación y sobrefragmentación del código es una línea muy delgada, pero el criterio que acabo de exponerte la define bastante bien. Y ahora, si las prácticas que vamos a ver están desaconsejadas ¿por qué hablar de ellas? Con …

Seguir leyendo

Espacios de nombres en PHP (y III). Jerarquía de namespaces.

En el primer artículo de esta serie explicábamos que los espacios de nombres son una forma de clasificar elementos equivalente, en cuanto al concepto, a lo que son los directorios para los ficheros. De este modo podemos tener elementos, como ya hemos aprendido, con el mismo nombre, en diferentes espacios de nombres. A la hora de referenciar un elemento, lo hacemos precediéndole, en su caso, del espacio de nombres al que dicho elemento pertenece. Al igual que ocurre con los directorios, podemos especificar una ruta de acceso de tres modos: Sin especificar un espacio de nombres. En ese caso se entiende que el elemento referenciado se encuentra en el espacio de nombres actual. Es lo mismo que no usar espacio de nombres. Esto se conoce como nombre sin cualificar. Es el equivalente, cunado hablamos de ficheros y directorios a llamar a un fichero sólo por su nombre, asumiendo que está en el mismo directorio en el que estamos trabajando. Especificando un espacio de nombres, la barra invertida, y el elemento al que queremos referirnos. Esto se conoce como nombre cualificado. El espacio de nombres que usamos “depende” del espacio de nombres actual. Es el equivalente a usar una ruta relativa …

Seguir leyendo

Prevalidar ficheros en el lado del cliente

A menudo nos encontramos con que, en un formulario, debemos incluir un campo que permita al usuario enviar archivos al servidor (imágenes, documentos pdf, etc). En los formularios tradicionales, una vez enviado el formulario se comprobaban los ficheros en el servidor (tipo de archivo, peso, etc). Esto supone un problema por cuanto que los archivos deben ser, necesariamente, enviados al servidor (con el consumo de recursos que esto conlleva) y, una vez allí, si no son adecuados, hay que volver a cargar el formulario, recuperando los datos ya enviados para que el usuario no deba teclearlos de nuevo. El problema se ve agravado con los campos de tipo file de HTML 5. Hasta HTML 4, estos campos sólo podían recibir un archivo cada uno, con lo que podíamos limitar el número de archivos que le permitíamos enviar al usuario, simplemente poniendo un campo de tipo file por cada archivo que esperamos. Esto era bastante engorroso. Con HTML 5 los campos de tipo file pueden llevar el atributo multiple, lo que permite, en un solo campo, enviar varios archivos. No obstante, debemos prever un mecanismo para limitar el número máximo de archivos.

Eliminar elementos en una matriz JavaScript

Las matrices en JavaScript son un recurso muy interesante (imprescindible, en muchos casos) a la hora de gestionar datos en el lado del cliente. Desafortunadamente, la gestión de matrices en JavaScript adolece de ciertas limitaciones importantes que los desarrolladores acostumbrados al backend y sus poderosas herramientas (léase PHP, por ejemplo) acusamos en gran manera. Sin embargo, sí cuentan con determinadas funcionalidades que es importante conocer. Una de estas, que vamos a tratar en este artículo, es la eliminación de un determinado elemento situado en un lugar concreto dentro de una matriz.

El canvas de HTML 5 (I). Qué es canvas.

En octubre de 2014 se publicó oficialmente el estándar HTML 5, aunque mucho antes ya estaba aprobado por el consorcio, y marcó un hito en la historia del desarrollo web. Si bien se introdujo, como sucede con estas cosas, con cierta cautela, mientras los navegadores evolucionaban para aprender a entender este nuevo estándar, la transformación que ha aportado a la web es indiscutible. Por supuesto, como ocurre casi siempre, Internet Explorer fue de los últimos en adoptar esta normalización (y algunos aún nos preguntamos si será totalmente compatible con la mayoría de las posibilidades). Vamos, lo normal.

El canvas de HTML 5 (II). Trazos en 2d.

En el artículo anterior aprendimos lo básico para crear lienzos de dibujo en HTML 5. En concreto, aprendimos a insertar los lienzos en la página, prever un mecanismo de fallback para navegadores inadecuados y referenciar los lienzos desde JavaScript. Sin embargo, aún no sabemos qué hacer con ellos, ni nos sirven para nada. En este artículo vamos a empezar a aprender a incluir formas en 2d en nuestros canvas. Y subrayo lo de “empezar” porque el dibujo en lienzos de HTML 5 permite tantas posibilidades que abarcarlas todas en un artículo es imposible. Sin embargo, de aquí saldremos con unos conocimientos básicos que, en posteriores artículos, nos permitirán seguir avanzando. Cómo siempre, espero que disfrutes de esta lectura y, sobre todo, que te resulte interesante y provechosa.

El canvas de HTML 5 (III). Redimensionando canvas.

Este es un artículo muy breve para explicar una cosa que es importante conocer. Cuando dimensionamos canvas, debemos, en general, hacerlo usando los atributos width y height. Hacerlo mediante CSS origina distorsiones en todos los contenidos, por lo que sólo emplearemos el dimensionado por CSS en aquellos casos en los que queramos, específicamente, que los contenidos se distorsionen para adaptarse al contenido del nuevo canvas. Desafortunadamente, aunque los contenidos gráficos se generan mediante código, al final quedan como imágenes de mapa de bits, no vectoriales, como uno podría, en principio, pensar. Por lo tanto, al distorsionar las imágenes, se pierde calidad en las mismas. Esto se debe a que CSS sólo actúa sobre el canvas, pero no puede actuar sobre el contexto, por lo que, cuando dimensionamos un canvas por CSS, incluso si lo hacemos antes de crear el contexto, este se crea sobre la base del tamaño original del canvas, y luego se redimensiona, con todos sus contenidos “estirando” o “encogiendo” los píxeles, hasta alcanzar el tamaño CSS del canvas.

El canvas de HTML 5 (IV). Más sobre trazos.

Hemos aprendido que en un canvas se pueden dibujar figuras “de contorno”, es decir, solamente el trazo, sin relleno. Sin embargo, apenas hemos aprendido los principios básicos. En este artículo vamos a ver que, siguiendo esos principios y con unos pocos conocimientos adicionales, podemos dibujar cualquier forma primitiva o, elaborando un poco más el tema, cualquier forma geométrica. Este es un artículo con mucho contenido, pero muy fácil de entender y asimilar, como verás en seguida. Aprenderemos a hacer figuras geométricas, líneas con terminaciones e, incluso, texto. Adelante. Lee y disfruta.

El canvas de HTML 5 (V). Relleno sólido.

Ya estamos bastante familiarizados con el uso de las figuras de trazo en los canvas. En este artículo vamos a ampliar los conocimientos que ya tenemos, para ver como podemos crear figuras sólidas, tanto con contorno como sin él. En lo que veamos en este artículo emplearemos colores planos (no gradientes, ni texturas), para aprender a crear figuras con tonos sólidos o con el grado de transparencia que deseemos en cada caso. Así que, hala. Prepara el bote de pintura, y vamos a pintar.

El canvas de HTML 5 (VI). Gradientes.

En el artículo anterior hemos aprendido a crear figuras rellenas, con un color sólido. En este artículo vamos a empezar a aprender como crear y usar gradientes, tema que completaremos en el próximo artículo. Los gradientes, o degradados, como se les llama en algunos textos, son muy llamativos a la hora de crear figuras. Algunos diseñadores gráficos los detestan y, honestamente, un gradiente debe ser suave y estar bien concebido para causar una buena impresión visual. En eso, como en todo (y nunca mejor dicho), para gustos los colores. Aquí aprenderemos a crearlos y usarlos, y luego será tu talento artístico y tu experiencia los que te dirán cómo y cuándo emplearlos.