Open j3nsch opened 2 years ago
Abhängigkeiten von AbstractModel
werden durch ModelInterface
aus Common ersetzt. Für Field
wird FieldInterface
verwendet.
Die neue Date
-Klasse erzeugt neue Field
-Objekte "on-demand", damit die neue Klasse immer noch genauso verwendet werden kann wie die alten Modellklassen im Framework.
Die Prüfung auf AbstractDb
, also Modelle mit ID, wird durch eine Prüfung auf PersistableInterface
ersetzt.
Anstelle von AbstractLinkModel
wird LinkModelInterface
verwendet.
Für AbstractDependentModel
wird DependentModelInterface
eingeführt.
Es muss sich noch zeigen, ob diese Interface für die neue Implementation der Datenbankanbindung noch weiter angepasst werden müssen. Ziel ist es eine Abstraktionsschicht zu schaffen, mit der das alte Framework und auch die neue Doctrine-Implementation mit der OPUS 4 Application genutzt werden kann. Das sollte den Umstieg und die weitere Entwicklung vereinfachen.
Im Zusammenhang mit dem Wechsel zu PHP 8 sind Probleme mit den XML-Versionsnummern aufgetreten. Vorher erschien im XML "2.0", mit PHP 8, nur noch "2". Die Funktion getVersion
verwendet floor
und liefert ein Float-Wert zurück. Es ist unklar warum das gemacht wird. Die Versionsnummer wird im Cache verwendet, um das XML zu identifizieren.
Der Code unter
Opus\Xml
hängt von konkreten Klassen wieOpus\Model\AbstractModel
undOpus\Model\Dependent\Link\AbstractLinkModel
ab. Diese Abhängigkeiten müssen durch Interfaces aufgelöst werden. Damit erhalten wir mehr Flexibilität bei der Implementation der Modellklassen und können den XML Code in ein separates Paket auslagern (OPUS4/opus4-xml#2).