2012-10-12 42 views
0

以下問題不是特定於SonataAdminBundle,同樣的設計問題仍然適用於所有第三方Bundle,但我舉了一個具體示例使其更清晰。Symfony2依賴Bundle配置設計

我正在爲新的Symfony2應用程序安裝SonataAdminBundle,這將廣泛地使用Bundle(某種後端項目)。

我讀了索納塔文件(和許多其他捆綁文檔也是如此),我應該把關於路由/配置/服務等方面的信息......在應用層,即:應用程序/配置/ XXX

但是,我認爲這不是我項目中的正確方法。 事實上,我的「BackendBundle」將非常依賴SonataAdminBundle,如果沒有它,它將無法工作。

將所有這些配置文件直接放在我自己的「BackendBundle」的Ressource文件夾中,而不是在應用程序中是不是更多的邏輯?在我看來,我的包的作用是處理Sonata配置輸入,而不是應用程序角色。

回答

1

只要從主routing.yml文件導入路由配置,也可以將路由配置放在一個包中。

捆綁文檔使用簡單的例子,快速設置。這就是爲什麼你會經常看到導入路由資源的方式。

+0

我的想法是@import Sonata配置文件到我自己的BackendModule(這是一個特定於業務的項目,並且永遠不會被重用於另一個項目)。 – elwood

+0

,然後@在應用程序級別導入我的BackendBundle的配置文件。所以這個想法聽起來並不愚蠢?在這種情況下是否正確? – elwood

+0

你想做什麼應該工作。 – AdrienBrault

1

您應該將捆綁中的服務依賴關係連線,但是項目的實際配置屬於應用程序。

你的bundle依賴於另一個bundle是完全可以接受的,但是你添加到它的配置應該特別與這個依賴相關,而不是配置本身。實際配置屬於您的應用程序,將項目配置添加到您的軟件包使其不可重用。