-
Notifications
You must be signed in to change notification settings - Fork 7
Description
Die Klasse Opus\Person ist zum einen das Datenmodell für eine Person in OPUS 4, die dann zum Beispiel als Autor mit einem Dokument verknüpft werden kann. Hier gibt es einige offene Design-Fragen.
Person-Objekte werden bisher für jedes Dokument neu angelegt und sind in der Regel nur mit einem einzigen Dokument verknüpft. Das heißt, dass jeder Autor mit mehreren Dokumenten auch durch mehrere Person-Objekte im System repräsentiert ist. Ich glaube im ersten Schritt der Umstellung auf Doctrine werden wir das nicht ändern. Das ist nicht Ziel dieses Tickets. Allerdings enthält die Person-Klasse auch sehr viele Funktionen, die die Datenbank-API direkt verwenden und für die Personenverwaltung genutzt werden. Ich denke es ist sinnvoll diesen Teil des Codes aus der Modell-Klasse heraus zu lösen und in eine neue Klasse Persons zu verschieben.
Die neue Klasse Opus\Db\Persons (im Augenblick während des Umbaus Opus\Db2\Persons) sollte die Funktionen aufnehmen, die nicht direkt zum Datenmodell Person gehören und mit DBAL umgesetzt werden. Die Klasse wird die konkrete Implementation für die Datenbank sein und im Modell hinter einem Interface versteckt werden. Der Code der Application darf nicht von der Implementation abhängig sein. Es ist vorstellbar, dass in Zukunft ein Teil der notwendigen Funktionalität mit Hilfe des Solr-Index umgesetzt wird.