OPUS4 / opus4-common

Core package for OPUS 4.
Other
0 stars 5 forks source link

Document-Klasse als Ersatz für Framework-Document-Klasse implementieren #53

Open j3nsch opened 2 years ago

j3nsch commented 2 years ago

Die Nutzung von Document soll sich im OPUS 4 Code im wesentlichen nicht verändern. Es soll aber die Abhängigkeit von der konkreten Datenbankanbindung eliminiert werden. Im Code soll es weiterhin die Möglichkeit geben mit Document::new() oder Document::get() Document-Objekte zu erhalten und mit $doc->store() abzuspeichern.

Der Code in Application und in anderen Packages soll Document von Opus\Common verwenden. Wenn ein Document-Objekt neu angelegt oder geladen wird, soll einen konkrete Implementation zurück gegeben werden, z.B. DocumentDoctrine. Diese Klasse könnte Opus\Common\Document erweitern oder ein Interface implementieren, aber die Erweiterung ist vermutlich sinnvollere Weg, da so auch noch weitere allgemeine Funktionalität in Common implementiert werden kann.

Natürlich müssen alle Modellklassen so umgesetzt werden, aber Document spielt eine zentrale Rolle und dient als Testfall.

Dadurch das Packages dann nicht mehr vom Framework sondern von Klassen in Common abhängig sind, könnte das Framework in Composer auf eine Dev-Dependency herunter gestuft werden. Das Framework ist notwendig als konkrete Implementation für die Tests. Die zu verwendende Implementation muss in der Konfiguration angegeben werden. Für die Produktion wäre dann nur noch die Application direkt vom Framework abhängig. Das vereinfacht die Entwicklung.

j3nsch commented 1 year ago

Das ist im Prinzip bereits umgesetzt. Fast im gesamten Code von Application und anderen Packages wird nur noch Opus\Common\Document verwendet.

Das Issue bleibt noch offen, weil die letzten Arbeiten an der Modell-Implementation jetzt schon wieder eine Weile her sind und die nächsten Schritte klar sein müssen, bevor entschieden werden kann, ob diese Aufgabe erledigt ist.