martes, 15 de abril de 2008

Primer versión del logo de Yupp Framework PHP

Es un placer presentarles en nuevo logo de Yupp Framework PHP.
Los comentarios son bienvenidos.

lunes, 7 de abril de 2008

Segunda liberación del Yupp Framework PHP

El componente de modelo persitente YORM en su versión 0.2 está listo para ser descargado y probado.

En el post anterior donde avisábamos de la liberación se comentan las características más importantes en esta liberación, entre lo más notable está el soporte para carga perezosa, que se une a la previa carga en cascada, y la operación *Contains sobre objetos del modelo.

Puedes encontrar toda la información de la liberación en la documentación dentro del .zip en la página de descargas.

Cualquier duda o comentario será bien recibido y lo tomaremos en consideración.

La versión 0.3 del YORM estará lista mas o menos en un mes, con nuevas características, pero sobre todas las cosas será una liberación de estabilización, donde se harán pruebas exhaustivas, se revisará la API y se documentará lo mejor posible. Intentaremos con esta versión del YORM liberar tambén la primer versión (v0.1) del componente MVC del Yupp Framework PHP, el YMVC.

sábado, 5 de abril de 2008

Anuncio de liberación de la versión 0.2 del YORM

En el día de mañana estaremos liberando la versión 0.2 del YORM, el componente de modelo persistente del Yupp Framework PHP.

Aquí va un resumen de algunas de las nuevas características:
  • Carga de relaciones bidireccionales instanciadas unidireccionales corregida.
    Es básicamente la consideración de que si tengo una relación bidireccional entre dos clases, puedo tener una instancia de la relación que no es bidireccional, a no ser que tenga una restricción no estructural que diga lo contrario.

  • Se agrego operacion *Contains( id ) para preguntar si un atributo hasMany contiene un objeto con ese id.
    Si una clase Empresa tiene un atributo hasMany llamado "personas" (o sea que tiene asociadas varias "personas"), puedo preguntarle a una instancia de Empresa: $emp->personasContains( 123 ), eso retornará un booleano y será true solo si la lista de personas de la empresa tiene una persona con id 123.

  • Soporte para multiples relaciones entre las mismas 2 clases.
    Esto es, por ejemplo cuando tengo artículos escritos y autores, y en cada artículo quiero tener asociado un autor principal y los autores secundarios, antes no se podía modelar algo así de forma estándar. Ahora hay una forma "Yupp" de hacerlo ;)

  • Soporte para carga perezosa (lazy loading).
    Esta es la característica más importante de esta liberación, la capacidad de poder cargar un modelo de forma lazy, esto quiere decir que se puede cargar una instancia de una clase sin cargar las instancias de las clases asociadas, cosa que antes no se podía hacer y se cargaba en cascada (cargando una instancia se cargaban todas las de los elementos asociados). De esta forma, se cargan los objetos asociados solo si son utilizados, lo que representa un gran ahorro en el número de consultas que se deben hacer a la base de datos.

Entre hoy y mañana estaremos terminando de actualizar los tests para poder correr esta nueva versión, y en la noche estará publicada la nueva versión.