Zum Inhalt springen

Vorhandenes Model mehrfach (!) erweitern - Wie?

Erstellt am 9. Januar 2013 · 1 Antwort · letzte Antwort am 9. Januar 2013

Tags: Frontend-Benutzer, Frage

Julian.​Hofmann ·

Hallo zusammen.

Wie man ein Model (z.B. fe_user) um neue Felder erweitern kann, wird an verschiedenen Stellen bereits recht gut erklärt (z.B. von Stefan auf http://www.typo3lexikon.de/index.php?id=81).
Als Vorgehen wird stets das Model \TYPO3\CMS\Extbase\Domain\Model\FrontendUser erweitert.

Nun stellt sich mir aber die Frage: wie kann ich auf bereits erweiterte Models zugreifen?

Beispiel:

- extension1 erweitert den FrontendUser um ein Feld für seinen Lieblingsfilm
- extension2 erweitert den FrontendUser um ein Feld für sein letztes Urlaubsziel
- extension3 möchte eine Liste der FrontendUser ausgeben

Lösungsansätze:
1. extension3 könnte nun das FrontendUser-Model von einer der beiden anderen Extensions erweitern - damit würde aber die Eigenschaft der anderen fehlen.
2. extension2 könnte bereits das FrontendUser-Model von extension1 erweitern, extension3 dann das FrontendUser-Model von extension2 - damit wäre alles da, aber eine unlogische Abhängigkeit zwischen extension1 und extension2 erzwungen.
3. In extension3 via Mapping und eigenen Getter-Methoden die beiden zusätzlichen Eigenschaften (nochmals) definieren/anlegen

Gibt es nicht eine Möglichkeit, das Model einfach zu nutzen, wie es in der Datenbank abgelegt ist - samt bestehender Erweiterungen?

Seh ich den Wald vor lauter Bäumen nicht? #angry#

Viele Grüße
Julian

LuP ·

Hallo,

es weicht ein wenig von der von Dir gestellten Frage "wie kann ich auf bereits erweiterte Models zugreifen?" ab, aber ich würde das Mapping, die neuen Eigenschaften und Methoden in eine andere Extension verlagern. Dann im jeweiligen Controller der übrigen Extensions die Repository injizieren. Damit würde sich "die unlogische Abhängigkeit" erübrigen und man kann zwecks Übersichtlichkeit die notwendigen Anpassungen an einer Stelle durchführen. Leichte Änderungen der vorhandenen Models sind zwar notwendig und manche Eigenschaften werden von einer Extension nicht immer benötigt, aber das würde ich in Kauf nehmen.

VG,
LuP