3 Stimmen

Wie definiere ich eine Entität, die in mehreren Bundles verwendet wird?

Ich möchte ein Blogging-System erstellen, um Symfony2 zu üben, aber momentan bin ich ein wenig verwirrt, wenn es darum geht, Entitäten wie Benutzer oder Blog zu erstellen. Der Grund ist folgender:

  • Benutzer (oder Blog) wird sowohl im Frontend als auch im Backend (Adminbereich) häufig verwendet (aktuell habe ich überlegt, FrontendBundle und AdminBundle zu erstellen).
  • Die Entität muss zu einem Bundle gehören.

Derzeit habe ich die folgenden Methoden in Betracht gezogen, aber was ist der beste Weg in diesem Fall, oder sagen Sie mir bitte, ob es einen anderen Weg gibt.

  • Erstellen Sie ein Bundle mit dem Namen 'BlogCommonBundle' und definieren Sie die Benutzerentität als "BlogCommonBundle:User".
  • Definieren Sie alle Controller unter einem Bundle, wie z. B. 'BlogBundle', damit die Controller für das Frontend/Backend (Adminbereich) demselben Bundle angehören.

3voto

Steven Mercatante Punkte 23557

Ich denke, dass die Erstellung eines BlogBundles und das Vorhandensein mehrerer Controller für Frontend- und Admin-Funktionen ein guter Weg ist, um damit umzugehen. Beide Controller würden die gleichen Entitäten und Repositories nutzen und Sie können ganz einfach Ihre Admin-Aktionen in den Sicherheitseinstellungen Ihrer Anwendung abschotten. Indem Sie alles Blog-bezogene in einem Bundle halten, erhalten Sie eine gute Codeorganisation.

Das gleiche gilt für ein UserBundle. Es ist hilfreich, sich daran zu erinnern, dass ein Bundle eine Gruppe von ähnlichen Funktionen für eine Anwendung darstellen sollte. Wenn Sie also Code haben, der Blog-Posts abruft und es Ihnen ermöglicht, sie zu erstellen und zu verwalten, gehören sie natürlich zusammen in einem einzigen Bundle.

2voto

Dieter Punkte 1670

Ich habe eine ähnliche Frage hier gestellt: Wie kann ein Symfony2-Modell mit mehreren Projekten geteilt werden?

Ich habe den Ansatz mit dem 'ModelBundle' gewählt, das alle Entitäten, Formulare, Repositories usw. enthält. Diese werden alle mit dem FrontendBundle und BackendBundle geteilt. Bisher bin ich sehr zufrieden mit dieser Lösung.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X