Vorhandenes Model mehrfach (!) erweitern - Wie?

  • Julian.Hofmann Julian.Ho...
    Flash Gordon
    0 x
    2845 Beiträge
    105 Hilfreiche Beiträge
    09. 01. 2013, 10:25

    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?
    [u]Beispiel: [/u]
    - 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

    [u]Lösungsansätze:[/u]
    1. extension3 könnte nun das FrontendUser-Model von [u]einer[/u] 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


  • 1
  • LuP LuP
    Jedi-Meister
    0 x
    496 Beiträge
    1 Hilfreiche Beiträge
    09. 01. 2013, 13:07

    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

  • 1