Somms.NET e Icinetic desarrollan Radarc PHP
Esta semana se ha cerrado el acuerdo entre Somms e Icinetic para el desarrollo del módulo de PHP para la herramienta de generación de código RADARC BEA.
Esta semana se ha cerrado el acuerdo entre Somms e Icinetic para el desarrollo del módulo de PHP para la herramienta de generación de código RADARC BEA.
Hoy liberamos Somms PHP Business Framework, pensado para agilizar las labores de programación de la capa de acceso a datos y de negocio de las aplicaciones PHP, y su integración con AMFPHP de manera directa.
Es muy ligero, y por eso no tan potente como otras soluciones ya existentes. La principal intención es que sea sencillo pero efectivo.
El framework tiene las siguientes características principales:
Más información en la página del proyecto:
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.
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 🙂
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…)
Esta obra está bajo una
licencia de Creative Commons. 2024, Somms.NET. Algunos derechos reservados.