Oryx

META-Modell angetriebener Objekt Persistenz mit mehrfacher Erbschaft
Jetzt downloaden

Oryx Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Richard Hundt
  • Website des Verlags:
  • http://search.cpan.org/~rhundt/

Oryx Stichworte


Oryx Beschreibung

Meta-Modell-angetriebener Objektdauer mit mehrfacher Vererbung Oryx ist eine Aufgabe Persistenzframework die sowohl objektrelationale Mapping sowie DMB style Datenbanken und als solche Träger nicht mit einem speziellen Speicher Back-End gekoppelt ist. Mit anderen Worten, sollten Sie dem Swap einen RDMBS mit einer DBM-Stil-Datenbank (und umgekehrt) in der Lage sein, ohne Ihre persistenten Klassen an all.This verändert sich mit der Verwendung ein Meta-Modell erreicht, das paßt in so eng mit Perl eigenen wie möglich - und aufgrund Perl hervorragender Prüfungsmöglichkeiten und enormer Flexibilität - das ist ganz in der Nähe in der Tat. Aus diesem Grund Hash, Array und Referenz Assoziationstypen sind mit großzügigen Einsatz von `tie implementiert. Die Verwendung eines Meta-Modell, wenn auch eine sehr transparenten, unterstützt konzeptionell die Entkoppelung von Speichern Back-End von persistenten Klassen, und zum größten Teil, neben ein wirklich kleines amout von Meta-Daten, würden Sie persistente Klassen verwenden in einer Weise, die praktisch nicht von gewöhnlichen perl classes.Oryx ist das Prinzip DRY folgt - do not Repeat Yourself - on Rails Framework von der fantastischen Ruby-inspiriert, so was Sie sagen, tun, sagen Sie es nur einmal, wenn Ihr $ Schema für die Definition deine Klasse. Danach wird alles für Sie betreut genommen, einschließlich der automatischen Erstellung von Tabellen (wenn Sie ein RDBMS Speicher verwendet werden). Oryx Versuche Namen Tabellen und Link auf diese Weise sinnvoll erstellten Tabellen, so dass, wenn Sie benötigen sollten Sie in der Lage sein, sich zurechtzufinden in dem Schema zu finden, mit ease.Because Oryx Arbeitsgeräte Beziehungen wie gewöhnliche Perl-Array und Hash Referenzen, können Sie erstellen alle Strukturen oder Objektbeziehungen, dass Sie in nativer Perl schaffen könnten und diese in einer Datenbank bestehen haben. Dies gibt Ihnen die Flexibilität, Bäume, zyklische Strukturen, verkettete Listen, gemischte Listen (Listen mit Instanzen verschiedener Klassen) zu erstellen, etc.Oryx unterstützt auch Mehrfachvererbung von Perl nativen Anwendung Basismechanismus. Abstrakte Klassen, die einfach Klassen ohne Attribute sind, sind sinnvoll too.SYNOPSIS # eine persistente Klasse Paket CMS :: Seite definieren; verwenden Basis qw (Oryx :: Klasse); unser $ schema = {Attribute => , Verbände => }; 1; # ... für weitere Details zu sehen definierenden Klasse META-DATA in L) # ================================= ========================================== # verwenden, um eine persistente Klasse Verwendung CMS: :Buchseite; $ Page = CMS :: Seite-> create ({title => 'Das Leben in der Metaverse'}); $ Page = CMS :: Seite-> abgerufen werden ($ id); $ Page-> update; $ Page-> löschen; @pages = CMS :: Seite-> Suche ({author => 'Richard Hun%'}, @order, $ Limit, $ offset); # Mit SQL Suche WHERE-Klausel (die Seiten einen bestimmten Absatz enthalten): @book = CMS :: Seite-> Suche ({exists => q {(SELECT id FROM Seite WHERE page.id = author.id UND Page.Title LIKE 'Meta%')}}); # ================================================= ========================== # verpflichten Ihre Änderungen $ page-> begehen; # ================================================= ========================== # Attribut Mutator $ page-> title ( 'The Metamanic Mechanic'); $ Tite = $ page-> title; # ================================================= ========================== # Referenz Verein Mutator $ template_obj = $ page-> template; $ Page-> template ($ template_obj); # ================================================= ========================== # Array Verein Accessor $ page-> Ziffern -> = $ intro_para; $ Absatz = $ page-> Absätze -> ; # ================================================= ========================== # Array Verband Betreiber $ CONCL = pop @ {$ page-> Absätze}; $ Intro = shift @ {$ page-> Absätze}; Push @ {$ page-> Absätze} $ CONCL; unshift @ {$ page-> Absätze} $ new_intro; Spleiß @ {$ page-> Absätze}, 1, 4, ($ Zusammenfassung); # ================================================= ========================== # Hash-Verband Accessor $ image_obj = $ page-> Bilder -> {logo}; $ Page-> Bilder -> {mug_shot} = $ my_ugly_mug; @keys = keys% {$ page-> Bilder}; @values = Werte% {$ page-> Bilder}; # ================================================= ========================== # Unterstützung für die Klasse :: beobachtbare Seite-> add_observer (sub {my ($ item, $ action) = @ _; # ...}); $ Page-> add_observer (...); # Beispiel # =============================================== ============================ # Verbindung zu Speicher $ storage = Oryx-> connect (); # Oder ein Schema $ Speicher angeben = Oryx-> connect (, 'CMS :: Schema'); # Für DBM :: Tief Back-End-Oryx-> connect (, 'CMS :: Schema'); # ================================================= ========================== # implementieren das Schema $ Storage-> deploySchema (); # Für alle bekannten Klassen (über `use ') $ Storage-> deploySchema (' CMS :: Schema '); $ Storage-> deployClass ( 'CMS :: Seite'); # Automatisch je nach Bedarf Verwendung Oryx (auto_deploy => 1) einzusetzen; # Für alle Klassen CMS :: Seite-> auto_deploy (1); # Nur für diese Klasse Anforderungen: · Perl.


Oryx Zugehörige Software