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.

No hay comentarios:

Publicar un comentario en la entrada