-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Umsetzung von Collection-NestedSet-Struktur mit DoctrineExtensions #220
Comments
Ich würde vorschlagen entweder jetzt hier noch weiter zu experimentieren oder zumindest alle bisherigen Erkenntnisse festzuhalten, um den Wiedereinstieg später zu vereinfachen. Die Ergebnisse in einem Branch festgehalten werden. Der Branch könnte für eine neuere PHP Version konfiguriert werden, allerdings haben wir immer noch ZF1 Abhängigkeiten, der Grund für unsere Beschränkung auf PHP 7.1. |
…ctrine ORM (using the Doctrine "Tree" extension to implement nested-set behavior)
Mit Vagrant können wir hier jetzt sehr leicht eine Umgebung mit PHP 7.3 oder neuer aufsetzen, um die Umsetzung mit |
…n; this prevents some tests from throwing Doctrine exceptions due to the CollectionRole->rootCollection relationship currently not being set to cascade persist
…ses the children() function of the Doctrine Tree extension to return the direct children of a Collection instance
…role relationship is set for the root collection
… root collection also deletes (or stores) its entire children tree
Ich habe zwei Tests ( Momentan schlägt der
Die MySQL-Doku sagt für
Oder für unseren Fall formuliert (see also):
So wie ich es aber verstanden habe, wollen wir stattdessen dieses Verhalten: Wenn eine Parent-Collection gelöscht wird, so werden auch dessen Child-Objekte gelöscht. Für dieses Verhalten müsste das SQL Schema wie folgt geändert werden:
Ich habe dies in meiner lokalen Installation einmal ausprobiert:
Mit diesen Schema-Änderungen und den Änderungen in Branch issue220 laufen die oben erwähnten Tests erfolgreich durch. Dabei werden auch die für die "nested set" Struktur erforderlichen DB-Felder ( |
Die Sammlungen (Collection) Objekte bilden in der Datenbank eine Baumstruktur ab. Dafür haben wir eine eigenen
NestedSet
Implementation. In Issue #131 geht es um die Umstellung auf Doctrine im Allgemeinen. Hier in diesem Ticket geht es darum, zu probieren unsere eigenen Implementation durch Doctrine Extensions abzulösen. Das würde unseren Code reduzieren und die Collection-Klasse könnte vollständig mit Doctrine-ORM umgesetzt werden.Leider benötigt die aktuelle Version der Doctrine Extensions mindestens PHP 7.2. Wir können aber erst mit Laminas und OPUS 4 v5.1 auf neuere PHP Versionen umsteigen. Eine ältere Version der Extensions führt dazu, dass auch andere Doctrine Abhängigkeiten zu wesentlich älteren Versionen zurückgestuft werden müssen und das scheint nicht sinnvoll. Der Umstieg auf die Extensions sollte auf jeden Fall für später getestet werden.
The text was updated successfully, but these errors were encountered: