Ankündigung

Einklappen
Keine Ankündigung bisher.

Struktur für Tool mit Frontend und Backend

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Symfony] Struktur für Tool mit Frontend und Backend

    Hallo,

    versuche mich gerade an einem Tool mit Frontend und Backend

    hätte mir mal folgendes Überlegt

    Tool\BeackendBundle
    Tool\FrontendBundle
    Tool\Components

    unter Tool\Components wollte ich die gemeinsamen Sachen unterbringen wie zb die DoctrinEntities

    allerdings hab ich keine Idee wie ich das mapping in der config machen soll, da Components kein Bundle ist.

    Wie geht ihr bei so etwas vor, oder sollte ich generell einen andren Ansatz nehmen?


  • #2
    Ein Symfony-Bundle ist per Definition aus der Doku ein Teil einer Webanwendung, der Klassen zu einer thematischen Einheit bündelt, dabei genau eine Aufgabe erfüllt und alles dafür Notwendige an Quellcode mitbringt, um alleine lauffähig zu sein.

    Da Webanwendungen ja sehr schnell wachsen können und auch sollen, finde ich den Fokus für die oberste Ebene der Ordnerstruktur im src-Bereich bei dir fast schon ein wenig zu groß gewählt: Wenn man nur ein Frontend- und ein Backend-Bundle hat (und ggf. noch ein drittes für gemeinsame Klassen), so läuft man ggf. Gefahr, thematisch eigentlich verschiedene Klassen in einen der beiden Bereiche packen zu müssen, weil man ja nur diese beiden oder diese drei Bundles hat, die dann mit der Zeit zwangsläufig riesengroß werden.

    Je nachdem, welches Thema deine Webanwendung bzw. dein Tool hat oder welche Aufgaben es erfüllen soll, würde ich mich an Inhalten des Models entlanghangeln und diese in etwa gleich große Bundles mit dem Namen der jeweils größten Entity im Bundlenamen packen. Also bspw. ein Club-, ein Person- und ein Payment-Bundle, wenn man sich um Sportvereine, Mitglieder und Beiträge dreht, obwohl diese Anwendung sicher auch in eine Unterteilung in ein Frontend- und ein Backend-Bundle passen würde.

    Wenn man das ganze so (also thematisch gruppiert) aufbaut, sind die Bundles imho kleiner, inhaltlich "dichter" und die ganze Anwendung damit einfacher zu warten, zu verändern und zu erweitern.

    Kommentar


    • #3
      hmm,
      auf die Idee bin ich ja gekommen, weil ich es Thematisch gliedern wollte.
      Es hätte dann zb ToolB, ToolC was auch immer weiter gehen die dann alle ein Frontend und Backend habe, nur genau eben für den Teil

      Was ist von folgender Aufteilung zu halten?
      ToolBundle\Controller\Frontend\IndexController
      ToolBundle\Controller\Backend\IndexController

      Da gibt es dann zumindest keine Probleme mit den zugehörigen Entities

      Eine Frage zu dem Beispiel Wo kommt dann zb ein Formular hin in dem man einen Club anlegen kann und gleich Personen hinzufügen kann?
      Denn das PersonenBundle wird immer mit dem ClubBundle zusammenhängen.

      Kommentar

      Lädt...
      X