SPOPSX :: GINSU

SPOPSX :: Ginsu es una extensión de SPOPS para el apoyo generalizado de herencia.
Descargar ahora

SPOPSX :: GINSU Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • Perl Artistic License
  • Precio:
  • FREE
  • Nombre del editor:
  • Ray Zimmerman
  • Sitio web del editor:
  • http://search.cpan.org/~zman/SPOPSx-Ginsu-0.58/SPOPSx/Ginsu.pm

SPOPSX :: GINSU Etiquetas


SPOPSX :: GINSU Descripción

SPOPSX :: Ginsu es una extensión de spops para el apoyo generalizado de herencia. SPOPSX :: Ginsu es una extensión de SPOPS para el soporte generalizado de herencia.Synopsis1. Cree una clase de DataSource, por ejemplo, MyDBI, que hereda de Spopsx :: Ginsu :: DBI tiene las variables del paquete para la conexión de la base de datos (por ejemplo, ver T / MYDBI.PM) .2. Cree una clase base de raíces, por ejemplo, MyBaseObject, que hereda desde la clase de DataSource y Spopsx :: Ginsu y define la tabla base (por ejemplo, ver t / mybaseobject.pm) .3. Cree su propia subclase de MyBaseObject, que define sus propios campos (por ejemplo, ver t / person.pm) .4. Cree un archivo de configuración que define las variables del paquete utilizadas por la clase de DataSource para que la conexión de la base de datos (por ejemplo, consulte T / MY_DBI_CONF.PM). Teaser los archivos de los pasos 1-4 son mydbi.pm, mybaseobject.pm, myObject.pm y my_dbi_conf.pm ... use my_dbi_conf; Usa MyObject; $ obj = myObject-> Nuevo ({field1 => 'value1', ...}); $ obj = $ obj-> ahorre; $ obj = myObject-> Fetch ($ ID); $ obj = mybaseObject-> pm_fetch ($ id); $ obj-> Eliminar; Esta es la clase base para todos los objetos de Ginsu. SPOPS :: DBI implementa un mecanismo de persistencia hereditario para las clases cuyos objetos se almacenan cada uno como una fila en una sola tabla de base de datos. Cada clase tiene su propia tabla y todos los campos persistentes se almacenan en esa tabla. Ginsu extiende esta implementación para manejar la subclasificación de tales objetos, incluida la recuperación polimórfica. Los campos de un objeto determinado se almacenan en varias tablas de base de datos, una para cada clase de padres con campos persistentes. Un objeto Ginsu es simplemente un objeto SPOPS :: DBI almacenado en múltiples tablas de base de datos. Todos los objetos para los que desea acceso polimórfico debe compartir una clase base cuya tabla tiene un campo 'ID' único y un campo 'Clase'. En las clases de ejemplo utilizadas para las pruebas (consulte el diagrama en docs / example.pdf), esta clase se llama MyBaseObject. Supongamos que tenemos una clase de implementación de vehículos que hereda de MyBaseObject, que tiene el nombre de los campos "y el 'propietario'. Y supongamos que la implementación del vehículo tiene un avión de subclase que agrega el campo 'techo'. En este ejemplo, un objeto de aeronave se almacenará en 3 tablas, 'ID' y 'Clase' en la mesa base para MyBaseObject, 'Name' y 'Propietario' en la mesa base para la implementación del vehículo y el 'techo' en la base de la aeronave base. Cada tabla también tiene un ID_FIELD que se usa para unir las piezas del objeto juntas desde las 3 tablas. También, a diferencia del uso típico de los objetos SPOPS, donde las clases son creadas por SPOPS y no tienen un archivo .pm correspondiente, los objetos de Ginsu son Definido en un archivo .pm al igual que un objeto PERL estándar, con algunas adiciones. Cada clase debe definir las variables @isa, $ conf, y $ Table_DEF en el bloque de inicio. La variable @isa es estándar Perl y $ Table_DEF contiene una declaración SQL que crea la tabla para la clase correspondiente. La variable de $ CONF contiene un hash de configuración de SPOP con la configuración solo para esta clase. El bloque de inicio es seguido por las declaraciones de 'uso' para las clases a las que se hace referencia en @isa y las partes 'has_a' y 'enlaces_to' de $ conf. Finalmente, después de todas las declaraciones de uso, debería tener la línea: __Paquetar __-> config_and_init; por convención lo ponemos como la última línea de código en el archivo. Estos convenios nos permiten decir ... Use MyObject; ... Al igual que "usar" cualquier otro objeto Perl. Requisitos: · Perl


SPOPSX :: GINSU Software relacionado