2016-07-09 151 views
0

我正在嘗試爲Symfony項目創建可重用的包。如何將實體從外部包映射到用戶實體

這個捆綁有一個巨大的模型映射,但我遇到一個概念性的問題:

如何,與Symfony的,我可以結合我的實體之一,利用該包的人的最終應用的用戶實體?

我可以使用一些配置來獲取用戶類並動態創建這兩個類之間的映射,還是有更好的方法來處理這個問題?

謝謝社區:)!

+3

我建議看看其他大型捆綁包是如何做類似的事情的。一個簡單的例子可能是[FOSCommentBundle](https://github.com/FriendsOfSymfony/FOSCommentBundle)。基本上創建抽象基礎實體(使用映射數據),然後使用該捆綁的人員將在其應用中擴展。 – JimL

+0

是的,我知道這種做事的方式!我會盡量讓最終用戶沒有大的限制! – Kern

+2

我明白了,但保持其與其他已知捆綁類似,也可以輕鬆採用捆綁包。另外,擴展'YourBundle:BaseEntity'的'AppBundle:Entity'使得它更清楚發生了什麼。有些人喜歡把「魔法」的數量降到最低^^ – JimL

回答

0

其實我想是這樣的:https://www.theodo.fr/blog/2013/11/dynamic-mapping-in-doctrine-and-symfony-how-to-extend-entities/

這無疑是解決方案,我將應用到我的項目。

經過幾天的發展,我注意到對於我創建的每個新實體,我必須將它映射到該包的「最終用戶可擴展」類。如果我告訴最終用戶將他自己的Project類映射到他自己的User類,我稍後必須告訴他「映射到Project類的每個類都必須手動映射」。

我認爲我們都不想實現一個外部包並覆蓋其內部模型的每個部分。使用事件訂閱者的動態映射避免了它!

Ty for your help,I hope this note will help some other lads:D!