Skip to content

Sammlungscode auf Doctrine umstellen #131

@j3nsch

Description

@j3nsch

Für die Sammlungen wird in der Datenbank eine Baumstruktur abgebildet. Daran sind mehrere Klassen beteiligt.

Opus\Db\

  • Collections
  • CollectionsRoles
  • NestedSet

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\AbstractCollection
  • Opus\Collection\Plugin\DeleteSubTree
  • Opus\CollectionRole\Plugin\DeleteTree
  • Opus\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.

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