Creando componentes para DBIx::Class
DBIx::Class es una librería Perl que permite gestionar objetos sobre una base de datos relacional (ORM).
Su diseño permite añadir componentes a una clase DBIC, los cuales son módulos que pueden sobrecargar un método concreto ó añadir otros, dado que se dispone de un sistema de herencia más controlado proporcionado por Class::C3.
Componentes deseables
Procedentes de un antiguo desarrollo para la empresa surgieron los siguientes componentes, implementados, por cierto, de forma muy similar a los que proporciona DBIC .
DeletedMark
Cambia la forma en que se borra un objeto de la base de datos, pasando del borrado físico a establecer una marca en una columna añadida al respecto.
- Atributos añadidos:
- Columna
_deletedde tipo numérico que responde a la pregunta de si el objeto está borrado ó no.
- Columna
- Métodos sobrecargados:
delete: activa la marca de borradoinsert: se asegura de que la marca de borrado esté desactivada.search: recupera sólo los que no están borrados.
- Métodos añadidos:
undelete: desactiva la marca de borrado de un objeto.
History
Proporciona un registro automágico de los cambios efectuados sobre un objeto.
- Atributos añadidos:
- Nueva tabla 'History' con los siguientes atributos:
- Identificador del objeto destino de la operación (
nda_targettal vez). - Marca de tiempo
- Clase de operación: create, delete y/ó update.
- Autor: identificador del usuario que ha efectuado la operación.
- Registro: Datos del objeto empaquetados como un texto sin longitud
fija (útil para posteriores operaciones de reconstrucción ó para
ampliar los informes de uso); en realidad se conservan dos conjuntos
de datos dependiendo de la operación:
before: contenido del objeto antes de actuar sobre él.after: contenido del objeto después de la operación.
- Identificador del objeto destino de la operación (
- Nueva tabla 'History' con los siguientes atributos:
- Métodos sobrecargados:
delete: se actualiza el campobefore.insert: se actualiza el campoafter.update: se actualizan los camposbeforeyafter.
Ownership
Usando una mezcla de identificación y autorización de usuarios permite el acceso únicamente a un conjunto de objetos sobre los que tienes derecho de acceso.
- Atributos añadidos:
- Tabla 'users'
- Tabla 'roles'
- Tabla 'acl'
Métodos sobrecargados:
Métodos añadidos:




