2016-07-09 6 views
0

Ich versuche, ein wiederverwendbares Bundle für Symfony-Projekte zu erstellen.So ordnen Sie eine Entität aus einem externen Bundle der Benutzereinheit zu

Dieses Paket hat ein riesiges Modell-Mapping, aber ich begegnet ein konzeptionelles Problem:

Wie mit Symfony, kann ich eine meiner Einheiten an die Benutzereinheit von der Endanwendung der Menschen binden das Bündel mit?

Kann ich eine Konfiguration verwenden, um die Benutzerklasse zu erhalten und dynamisch die Zuordnung zwischen diesen beiden Klassen zu erstellen, oder gibt es einen besseren Ansatz in dieser Angelegenheit?

Danke Community :)!

+3

Ich würde empfehlen, zu untersuchen, wie andere große Bündel ähnliche Dinge tun. Ein einfaches Beispiel könnte [FOSCommentBundle] sein (https://github.com/FriendsOfSymfony/FOSCommentBundle). Im Grunde erstellen Sie abstrakte Basis-Entitäten (mit Mapping-Daten), die die Personen, die das Bundle verwenden, in ihren Apps erweitern. – JimL

+0

Ja, ich kannte diese Art Dinge zu tun! Ich werde versuchen, es ohne große Einschränkungen für den Endnutzer zu schaffen! – Kern

+2

Ich verstehe, aber es ähnlich zu anderen bekannten Bundles zu halten, macht es einfach, Ihr Bundle auch zu übernehmen. Darüber hinaus macht es eine "AppBundle: Entity", die "YourBundle: BaseEntity" erweitert, klarer, was vor sich geht. Manche möchten die Menge an "Magie" auf ein Minimum reduzieren ^^ – JimL

Antwort

0

In der Tat wollte ich etwas wie folgt aus: https://www.theodo.fr/blog/2013/11/dynamic-mapping-in-doctrine-and-symfony-how-to-extend-entities/

Dies ist sicherlich die Lösung, die ich an meinem Projekt gelten.

Nach ein paar Tagen der Entwicklung, bemerkte ich, dass ich für jede neue Entität, die ich erstelle, muss ich es zu einer "Endbenutzer erweiterbar" -Klasse des Bündels zuordnen. Wenn ich dem Endbenutzer befehle, sich die Project-Klasse seiner eigenen User-Klasse zuzuordnen, muss ich ihm später sagen, dass jede Klasse, die der Project-Klasse zugeordnet ist, auch manuell zugeordnet werden muss.

Ich denke, keiner von uns will ein externes Bündel implementieren und jeden Teil seines internen Modells überschreiben. Dynamisches Mapping mit Event-Abonnenten vermeidet es!

Ty für Ihre Hilfe, ich hoffe, diese Notiz wird ein paar andere Jungs helfen: D!

Verwandte Themen