2012-09-14 30 views
2

其實我有五個基於Symfony 2.0的簡單項目。每個項目都使用Doctrine ORM進行用戶管理。創建一個像FOSUserBundle一樣的可重用的用戶和組管理包?

其中捆綁,User類有差異非常少。 Bundle1可能會增加「企業名稱」屬性,bundle2中可能會增加「入站通信」的關係。但所有這些都具有「鹽」,「密碼」,「用戶名」,「角色」等相同的已知屬性。當然還有一些搜索用戶的邏輯。

問題是什麼是統一用戶管理的合理方法?我的意思是創建一個可重用的UserBundle。我正在尋找一些關於xml配置,映射超類,服務,實體和表單繼承的建議。

我已經看了FOSUserBundle,它看起來有點複雜,我。我不能完全理解它的邏輯。我不需要模板和視圖,因爲我的五個包中的每一個都可以處理它。我更喜歡自己編寫代碼。

回答

1

我看過FOSUserBundle,它對我來說看起來有點複雜。我不能完全理解它的邏輯。我不需要模板和視圖,因爲我的五個包中的每一個都可以處理它。我更喜歡自己編寫代碼。

你自己回答你的問題,嵌入利弊。

優點:

  • 代碼重用使得開發更快

缺點:

  • 可重用的代碼往往是更通用,並導致更復雜的東西來解決問題。

如果您在一個經常開發涉及用戶管理的項目的團隊中工作,那麼創建您自己的項目是非常有價值的。

大部分發布的捆綁包最初都是爲個人使用而開發的。

如果你知道你是不與任何其他比Doctrine2要去工作,你可以繞過部分抽象的東西,使其與MongoDB的工作爲例。

如果這樣做,請記住,這將除其他開發者共享,而正在使用的爲你做這使用相同的技術合作者。

如果你一個人,讓它適合你的需求。

+0

我同意當然,但你的回答太「理想」了。我需要一些關於捆綁結構的更具體的建議,以使其更加可重用。 – gremo

+0

@Gremo,如果你想要一個具體的建議讓你的代碼可以重用,那麼不要把它看作一個Bundle,而是作爲一個你可以插入到Symfony2中的庫(通過創建一個bundle)。可重用代碼是解耦的,具有最少的依賴關係。如果你可以像symfony2那樣容易地將你的lib插入到其他框架中,那麼你就完成了。 –

相關問題