Archivo de la categoría ‘Programación’

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
10 de mayo de 2008

ASP.NET Mobile MVC en la forja (Somms.MMVC)

Somms.NET está desarrollando un framework MVC para dispositivos móviles basado en ASP.NET, llamado Somms.MMVC. Este framework permite desarrollar sitios WEB/WAP de una manera organizada desde ASP.NET con la potencia del patrón MVC. Dada la versatilidad que ofrece este patrón es sencillo desarrollar portales mixtos (WAP/WEB) ya que el framework soporta igualmente la generación de vistas Web. Es compatible tanto con el framework ASP.NET como con Mono.

El proyecto se encuentra en fase embrionaria. Se irán publicando muestras según avance el desarrollo.

qrcode link
19 de abril de 2008

Type hinting en PHP 5

Otra pregunta del curso de PHP5 se refirió a que ocurre si recibimos una clase en un método que ha definido una restricción de tipo, y esa clase es hija de la que se ha restringido. ¿Las acepta? ¿Podemos acceder a los métodos y propiedades de la clase hija?

La respuesta es que sí a las dos. La “restricción de tipo” lo único que hace es verificar que la clase de la instancia que se le pasa al método es la misma que se restringe, como si usáramos la función is_a(), que devuelve true tanto si una instancia es de una clase concreta o de sus clases derivadas.
(más…)

qrcode link
18 de abril de 2008

Recolector de Basura de PHP5

A partir de una pregunta en el Curso de PHP que estoy impartiendo, me surgieron dudas acerca del funcionamiento del recolector de basura de PHP5.

Gratamente sorprendido, descubro que la implementación que PHP5 hace del recolector de basura es bastante mejor de lo esperado, aunque no exenta de algunas deficiencias.

Vamos a mostrar a continuación un ejemplo práctico de como funciona el recolector:

(más…)

  • qrcode link