-
Notifications
You must be signed in to change notification settings - Fork 7
Description
Für die Sammlungen wird in der Datenbank eine Baumstruktur abgebildet. Daran sind mehrere Klassen beteiligt.
Opus\Db\
CollectionsCollectionsRolesNestedSet
Im Zusammenhang mit Sammlungen gibt es weitere Klassen, die dann aber eine Ebene höher liegen und nicht direkt auf der Datenbankanbindung aufsetzen.
Opus\Model\Plugin\AbstractCollectionOpus\Collection\Plugin\DeleteSubTreeOpus\CollectionRole\Plugin\DeleteTreeOpus\Db\CollectionsEnrichments
Die Collection-Enrichments werden zur Zeit (noch) nicht genutzt. Es gibt aber geplante Erweiterungen für die sie nützlich sein könnten.
Die komplexeste Klasse ist NestedSet. Dort befindet sich der Code, um die Baumstruktur in der Datenbank abzubilden. Es sollte eine mehr oder weniger direkte Umstellung auf DBAL möglich sein.
Es gibt Erweiterungen für Doctrine 2, die NestedSets implementieren. Für die beiden Lösungen, die in der Doctrine 2 Dokumentation aufgelistet werden gibt es keine Releases. Die DoctrineExtensions sind eine weitere mögliche Lösung für die es Releases gibt und die anscheinend schon seit 10 Jahren gepflegt wird.
https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/limitations-and-known-issues.html
https://github.com/doctrine-extensions/DoctrineExtensions
Ein Umstieg auf DBAL ist der sicherere Weg im Augenblick und sollte mehr oder weniger eine Fleißarbeit sein. Eine externe Lösung hätte den Vorteil den Code im Framework zu reduzieren, aber würde für den aktuellen Umbau eine weitere unbekannte Größe einführen. Wir habe bisher sowieso noch kaum Erfahrungen mit Doctrine-ORM.