Open j3nsch opened 2 years 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.
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 mitDocument::new()
oderDocument::get()
Document-Objekte zu erhalten und mit$doc->store()
abzuspeichern.Der Code in Application und in anderen Packages soll
Document
vonOpus\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önnteOpus\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.