Las entidades son simplemente el contenido básico de los objetos de tu aplicación, la estructura de datos con la que estas trabajando. Si ya conoces las entidades, ve hasta la sección DB_Dataobjects.
¿Qué son las Entidades?
Si estas haciendo una apliación web sencilla, entonces estás tendrá que ver alguna de las siguientes entidades:
¿Qué hay sobre la fecha del artículo, o el nombre de usuario? Estos son atributos. Notar que las entidades siempre están denominadas en singular. Para más detalles sobre la diferencia entre entidades y atributos ver este artículo. Otro concepto que va de la mano con las entidades son las colecciones, que como habrás adivinado son listas de colecciones o entidades. Ejemplos de colecciones: todos los artículo de tu página principal, todos los comentarios asociados con un artículo, todos los resultados de una búsqueda concreta.
Cuando se está diseñando cualquier aplicación (app), probablemente tengas una relación de cosas para hacer, pero las posibilidades hacia las que tiendes son:
El diseño orientado a objetos (OO) hace que aplicaciones complejas sean más fácil de manejar aportando los siguientes soncepts:
– tu aplicación podría resultar un tanto inútil si no eres capaz de preservar las modificaciones de tus objetos. Si quieres que los datos se mantengan de una página a otra, indicadoen el caso del objeto Usuario, necesitas guerdarlos en sesión. Para hacer que persista el objeto entre ‘logons’ en la aplicación, como la información de Usuario, necesitarás almacenarla en un contenedor persistente adecuado: como pueda ser un registro en la base de datos (DB), un fichero en el disco, una entrada en un directorio LDAP, etc.
– cada vez que utilizas un método para modificar los atributos de un objeto, estás cmabiando su estado. En términos puros de OO todos los atributos de un objeto son privados y nunca pueden ser accedidos directamente desde otros objetos, sólo mediante métodos ‘get/set’. Sin embargo, en PHP4.x no está orientado en este sentido y por supuesto, con frecuencia, resulta más conveniente modificar las propiedades directamente.
DB_Dataobject
DB_Dataobject es un paquete de PEAR que gestiona la entidad por ti. En palabras del autor Alan Knowles:
DataObject, lleva a cabo 2 tareas:
1. construye sentencias SQL basadas en las variables de objetos y el constructor de métodos.
2. actúa como el almacén de datos para una fila de una tabla.
La clase núcleo es designada para ser extendida para cada una de tus tablas de esta forma colocas la lógica de los datos dentro de clases de datos.
included, es un Generador para hacer tus ficheros de configuración y tus clases base.
En un punto o en otro tu aplicación web requerirá que gestiones las entidades de una forma concreta, generalmente modificando el estado del objeto a través de una de las siguientes operaciones básicas:
el término que aparece entre paréntesis es el comando SQL equivalente. Lo que hace DataObjects (DO) es encapsular la forma en que interaccionas con los datos, haciéndolo mucho más sencillo la gestión el estado del objeto. El paquete presenta el siguiente ‘workflow’:
Las Ventajas
Actualmente, DO hace mucho más, pero ahora ya tienes el concepto básico. Para más detalles consulta la documentación sobre DO aquí. Para ilustrar la utilidad de este sistema de trabajo, permíteme explicar un caso típico antes/después de Dataobjects:
Antes de DO:
Después de DO:
Resumen
DB_Dataobject te permite gestionar entidades complejas en tus aplicaciones web gracias al encapsulamiento del los datos del objeto y permitiendote modificar el estado del objeto de una manera más sencilla.