sábado, 5 de diciembre de 2009

ORM de nivel enterprise

Si bien nos falta recorrer un largo camino vamos hacia ese objetivo: llegar a un ORM de nivel "enterprise". YORM, el ORM de Yupp Framework hoy está soportando las siguientes características:

  • Mapeo de clases con atributos de diversos tipos (TEXT, DATE, BOOLEAN, INT, FLOAT, entre otros)
  • Mapeo de estructuras de herencia en 2 sabores: cuando la clase A hereda de la clase B se puede optar por "mapeo de herencia en tabla única", entonces A y B se mapean a la misma tabla, o por "mapeo de herencia de múltiple tabla" donde A y B se mapean a distintas tablas, cualquiera de las opciones es transparente para el programador.
  • Mapeo de relaciones entre clases: estamos soportando relaciones unidireccionales y bidireccionales con cardinalidades 1-1, 1-N y N-N.
  • Las relaciones múltiples pueden ser de 3 tipos: colecciones, listas o conjuntos. Las colecciones pueden tener elementos repetidos y desordenados, las listas tienen elementos ordenados, y los conjuntos no tienen repetidos.
  • Estamos soportando 3 bases de datos: MySQL, SQLite y el último agregado PosgreSQL.
  • Podemos definir restricciones sobre los datos y esas restricciones se verifican antes de ingresar cualquier dato a la base.
  • Salvado en cascada: simplifica el código PHP al salvar en la base una estructura compleja de clases relacionadas a partir de la invocación al método save() en la clase principal.
  • Carga perezosa: cuando se carga una clase desde la base no se cargan sus clases asociadas, las mismas son cargadas una vez que son referenciadas, o sea que si no se usan, no se cargan, ahorrando tiempo.
  • Creación automática del esquema de en la base de datos: crea todas las tablas necesarias haciendo un clic.
Qué esperamos para el futuro en ORM:
  • Soporte para más bases de datos: Oracle, SQLServer, Access, etc.
  • Soporte para persistencia de colecciones de valores simples (Strings, Integers, Dates, etc).
  • Soporte para transacciones y rollback.
  • Capacidad de especificar los nombres de las columnas donde se guardan los campos de las clases.
  • muchas otras características...
¡Aceptamos sugerencias!
-

No hay comentarios:

Publicar un comentario