據我所知,Bundles將分離功能。假設我有一個UserBundle
& a BlogBundle
。然後我的BlogBundle:Post
將有一個author
字段,其中引用UserBundle:User
。這不會破壞Bundles的目的嗎?我不能換另一個UserBundle
?我怎樣才能以正確的方式做到這一點?或者這是最好的呢?在Symfony 2和Coupling中集成Bundle(相關原則2實體)
回答
如果您對捆綁之間的依賴關係感到不舒服(我個人同意您的看法),您可以在任何捆綁之外創建模型。這可以像這樣配置...
doctrine_mongodb:
document_managers:
default:
mappings:
model:
type: annotation
dir: %kernel.root_dir%/../src/MyApp/Model
prefix: MyApp\Model\
alias: Model
ORM的配置看起來很相似。
我從來沒有使用過這種方法,我很好奇你將如何引用一個倉庫,因爲你通常會寫'SomeBundle:SomeEntity'。前綴代替捆綁嗎?例如'MyApp:Model'(根據您的示例配置)? – 2011-12-26 19:18:06
但是,假設我正在開發一個'UserBundle',我可以將它用於多個項目,我不需要單獨分發模型嗎?此外,它似乎是這樣,只是另一個捆綁,而不是「正式」一個 – 2011-12-27 02:44:36
@Arms:您將使用配置的別名引用模型(即'型號:用戶') – 2011-12-27 23:27:12
捆綁是爲了儘可能地分開功能,但這並不意味着有些不會依賴於其他。
我認爲有趣的是,甚至一些Symfony2組件,它們應該是獨立的庫,都有依賴關係。例如,HttpKernel
類取決於來自HttpFoundation
和EventDispatcher
組件的類。
在您的示例中,如果您需要在另一個UserBundle
中進行交換,則必須採取必要步驟以確保您的BlogBundle
的依賴關係仍然滿足。這可能意味着你需要重構。
因此,捆綁的目的不會被打敗,因爲一個引用另一個。即使它們不總是100%解耦,捆綁仍然有利於使用。
那麼,在另一個應用程序的上下文中,人們可能不希望將給定的博客帖子綁定到個人/用戶,而不是羣組。爲了保持代碼的最大可移植性,我認爲你應該抽象一下這個場景。關係將是不可接受的。另一方面,所有者的身份是。
所以想象一個給定的博客文章有一個所有者。在上下文中,如果一個不同的應用程序有自己的捆綁包,所有者標識可能是一個組,一個用戶,一個外部來源等。
Imho您應該只使用編寫文章的「one」並不意味着這將成爲本地數據庫上的「人員」。
- 1. Symfony的2:理論和相關實體
- 2. Symfony 2驗證與相關實體
- 3. 生成原則2實體時出錯
- 4. zend框架2 +原則:移除與相關實體的媒體
- 5. 的Symfony /原則關係COUNT在實體
- 6. 2個實體的Symfony 2
- 7. 原則2:選擇實體領域,包括相關領域
- 8. 原則2:頁,塊,戰略模式與相關實體
- 9. Symfony 2將驗證移至實體,與相關實體驗證
- 10. 在Symfony 2上創建關係實體
- 11. blackhole cakephp 2相關實體
- 12. 來自實體對象symfony 2的調用原則
- 13. symfony 2 - Facebook Bundle - FacebookProvider - 如何在FacebookProvider中使用服務和實體管理器?
- 14. Symfony 2實體間關係組合
- 15. 實體與主義的關係(symfony 2)
- 16. Symfony 2上的學說實體關係
- 17. 在symfony 2中注入bundle服務
- 18. Symfony 2隱藏的實體?
- 19. 恢復值選擇輸入相關的實體doctrine symfony 2
- 20. Symfony 2生成:bundle - 帶或不帶命名空間/ Bundle/
- 21. Symfony 2&Doctrine 2:複雜的關係beetwen實體
- 22. Symfony的2 - 基於實體的關聯動態表單生成
- 23. 緩存linq 2 sql實體和相關實體
- 24. 原則2:實體沒有字段或關聯名爲x
- 25. 創建實體之間的關聯原則2
- 26. 原則2:保存實體的複雜關係
- 27. 在Symfony 2中創建2個具有相同表單的實體
- 28. Symfony 2 +原則,加入多個表
- 29. Symfony 2:清理原則元數據
- 30. Symfony更新相關實體
我發現令人討厭的事情是:如果我向社區提供一個包,並且它有依賴關係,那麼下游開發人員必須對這些代碼進行安裝。我想要一個deps系統,我爲我的捆綁指定了deps,'bin/vendors install'負責它,而不需要下游開發者與第三方捆綁。這和缺乏內置管理生成器是我與s2競爭的主要觀點(作爲一名資深s1用戶) – yitznewton 2011-12-26 16:13:53
@yitznewton,[作曲家](https://github.com/composer/composer)正在開發中以解決這個問題。 – 2011-12-26 16:18:55
@elnur我們什麼時候會用完音樂項目名稱? TY :) – yitznewton 2011-12-26 17:17:47