- 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