Archivo de septiembre, 2008

qrcode link
23 de septiembre de 2008

Briconsejo: Las páginas de IE6 se abren en Firefox

A la hora de desarrollar páginas Web accesibles es necesario probarlas en muchos navegadores, no siendo su importancia igual a lo extendido que esté su uso. Por esto tengo instalados en mi equipo tanto IE6 como IE7, para poder probar la visualización de una Web en ambos navegadores*. Todo iba bien hasta ayer, cuando las páginas web que intentaba abrir en IE6 se abrían automáticamente en Firefox. Si escribía en la barra de dirección de IE6 la dirección “www.somms.net” se  abría en ¡una nueva pestaña de Firefox!

El problema parece estar en una clave del registro, que se modifica al instalar algunos programas, y que está descrito en un blog de Microsoft. La solución pasa por reiniciar primero, y si aún así el problema persiste, eliminar la siguiente clave del registro:
[code]
HKEY_CLASSES_ROOT\CLSID\{c90250f3-4d7d-4991-9b69-a5c5bc1c2ae6}
[/code]

Reiniciar, y listo.
* Normalmente, la instalación de IE7 elimina IE6 de tu instalación de Windows, así que buscando un poco por Google “IE7 standalone” encontré muchas opciones.

qrcode link
12 de septiembre de 2008

Adiós PHP4. Viva PHP5

El pasado 8 de agosto (8/8/8), además de la inauguración de las Olimpiadas, se produjo otro evento notable. Se publicó la última y definitiva versión de PHP4 (4.4.9), con la que se pone fin a su desarrollo. Desde hace tiempo PHP4 solo tenía actualizaciones de seguridad, sin incluir nuevas funcionalidades, y a partir de estas fechas PHP4 queda definitivamente abandonado. Menos mal.

Por otro lado, una semana antes se publicaba  PHP5 version 5.3 alpha1. Aunque está versión está en desarrollo, nos pone la miel en los labios con funcionalidades muy deseadas, como la incorporación de espacios de nombres,  la “ñapa” de late static bindings,y funciones y declaraciones lambda. Además se incluyen nuevas extensiones bastante interesantes, como phar o intl. Desde que se publique PHP5 (5.3) hasta que la veamos instalada en los principales servidores de hospedaje pasará mucho tiempo, pero al menos en nuestros servidores la podremos utilizar a placer. Según el plan de trabajo, que es bastante goloso, tendremos una versión estable para finales de octubre.

qrcode link
10 de septiembre de 2008

Clases parciales en PHP

Las posibilidad de escribir el código de una misma clase en varios ficheros es una de las características que ofrece C# desde la versión 2.0 del .NET Framework. Esta práctica tiene sus pros y sus contras. Al usar clases parciales se corre el riesgo de tener el código de una clase repartido por todo el proyecto, siendo dificil de programar y mantener el código, e incluso se puede dar lugar a problemas de seguridad.

Pero supongamos que somos programadores con experiencia (¿?), y que vamos a  mantener nuestro código muy ordenado y seguro. ¿Qué ventajas nos ofrece este sistema? Varias, y quizá la más importantes es la posibilidad de integrar en nuestra aplicación clases generadas automáticamente por herramientas de generación de código, y enriquecerlas sin correr el riesgo de perder nuestro trabajo cuando sea necesario generarlas de nuevo. La generación de código se utiliza mucho para la creación automática de entidades de datos, dentro de frameworks de persistencia. Generamos una clase por cada entidad de la base de datos, y el código de cada clase es almacenado en un fichero. Si queremos añadir algún método a nuestra clase no debemos modificar el fichero generado, ya que  será sobreescrito si se vuelve a generar el código. Usando clases parciales tendremos un fichero adicional por cada clase generada, donde podremos escribir nuestro código sin correr riesgos.

PHP no soporta de forma nativa clases parciales. Sin embargo, no todo está perdido. PHP5 dispone de una colección de métodos “mágicos” (__set, __get y __call) que pueden ayudarnos a emular este comportamiento. En el blog Tower Of Power podemos ver un artículo con  ejemplos de cómo emular las clases parciales.

MyGeneration incluye una plantilla de generación de código para PHP, que es bastante fácil de modificar para incluir clases parciales. Particularmente, nosotros hemos incluido en el framework de MyGeneration un patrón Builder, en el cual hemos utilizado clases parciales.

PD: El  mismo comportamiento se puede emular utilizando herencia, pero entonces no hay reto 🙂

  • qrcode link