Skip to content

Verwaltungsfunktionen aus Opus\Person lösen und auf Doctrine umstellen #155

@j3nsch

Description

@j3nsch

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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions