SPOPSX :: Ginsu

SPOPSX :: Ginsu is een SPOPS-extensie voor gegeneraliseerde overervingsteun.
Download nu

SPOPSX :: Ginsu Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Ray Zimmerman
  • Uitgever website:
  • http://search.cpan.org/~zman/SPOPSx-Ginsu-0.58/SPOPSx/Ginsu.pm

SPOPSX :: Ginsu Tags


SPOPSX :: Ginsu Beschrijving

SPOPSX :: Ginsu is een spieden-extensie voor gegeneraliseerde overervingsteun. SPOPSX :: Ginsu is een SPOPS-uitbreiding voor gegeneraliseerde erfenisondersteuning.Synopsis1. Maak een datasource-klasse, bijvoorbeeld MyDBI, die van SPOPSX: Ginsu: DBI heeft de pakketvariabelen voor de database-aansluiting (bijvoorbeeld zie t / mydbi.pm) .2. Maak een root base-klasse, bijvoorbeeld MyBaseObject, die erft van de DataSource-klasse en SPOPSX :: Ginsu en definieert de basistabel (bijvoorbeeld zie t / mybaseobject.pm) .3. Creëer uw eigen subklasse van MyBaseObject die zijn eigen velden definieert (b.v. zie t / persoon.pm) .4. Maak een configuratiebestand dat de pakketvariabelen definieert die door de DataSource-klasse worden gebruikt om de database-verbinding (bijv. Zie T / My_dbi_Conf.pm) te maken). De bestanden van stappen 1-4 zijn mydbi.pm, mybaseobject.pm, myobject.pm en my_dbi_conf.pm ... gebruik my_dbi_conf; gebruik myobject; $ obj = myobject-> nieuw ({veld1 => 'waarde1', ...}); $ OBJ = $ OBJ-> SAVE; $ obj = myobject-> fetch ($ id); $ obj = mybaseobject-> pm_fetch ($ id); $ OBJ-> Verwijderen; dit is de basisklasse voor alle ginsu-objecten. SPOPS: DBI implementeert een geërfd persistentmechanisme voor klassen waarvan de objecten elk als een rij in een enkele databasetabel worden opgeslagen. Elke klas heeft zijn eigen tafel en alle aanhoudende velden worden in die tabel opgeslagen. Ginsu verlengt deze implementatie om de subklassen van dergelijke objecten te verwerken, waaronder polymorfisch ophalen. De velden van een bepaald object worden opgeslagen in verschillende databasetabellen, één voor elke ouderklasse met aanhoudende velden. Een Ginsu-object is eenvoudigweg een spieden :: DBI-object opgeslagen in meerdere databasetabellen.Alle objecten waarvoor u wilt dat polymorfe toegang een basisklasse moet delen waarvan de tabel een uniek 'ID'-veld en een' Klasse'-veld heeft. In de voorbeeldklassen die voor de tests worden gebruikt (zie het diagram in docs / example.pdf), wordt deze klasse MyBaseObject genoemd. Stel dat we een voertuigimplementatieklasse hebben die afnemen van MyBaseObject, die de velden 'naam' en 'eigenaar' heeft. En neem aan dat voertuigimplementatie een subclass-vliegtuig heeft die het veld 'plafond' toevoegt. In dit voorbeeld zal een vliegtuigobject worden opgeslagen in 3 tafels, 'ID' en 'klas' in de base_table voor MyBaseObject, 'Naam' en 'Eigenaar' in de basis_table voor voertuigimplementatie en 'plafond' in de base_table voor vliegtuigen. Elke tabel heeft ook een ID_FIELD die wordt gebruikt om samen te voegen aan de stukken van het object, samen uit de 3 tafels. Ook, in tegenstelling tot het typische gebruik van SPOPS-objecten, waar de klassen worden gemaakt door spops en geen bijbehorende .PM-bestand hebben, zijn Ginsu-objecten geen bijbehorende. gedefinieerd in een .pm-bestand, net als een standaard perl-object, met een paar toevoegingen. Elke klasse moet de variabelen @isa, $ Conf en $ Table_def in het beginblok definiëren. De @isa-variabele is standaard PERL en $ TACE_DEF bevat een SQL-instructie die de tabel voor de bijbehorende klasse creëert. De $ ConF-variabele bevat een SPOPS-configuratiehash met de configuratie alleen voor deze klasse. Het beginblok wordt gevolgd door 'gebruik'-verklaringen voor de klassen die worden verwezen in @isa en de' Has_a 'en' Links_to 'delen van $ Conf. Ten slotte, na al de gebruiksverklaringen, zou het de regel moeten hebben: __package __-> config_and_init; bij conventie plaatsen we het als de laatste regel van code in het bestand. Deze conventies stellen ons in staat om te zeggen ... Gebruik MyObject; ... Net als we zouden elk ander perl-object gebruiken '. Vereisten: · Perl


SPOPSX :: Ginsu Gerelateerde software