簡體   English   中英

覆蓋每個bundle symfony2中的parameters.yml

[英]Override parameters.yml in each bundle symfony2

我正在從事一個復雜的Symfony項目。 在項目中,我們有一個核心包,它使用位於app / config中的parameters.yml。

每個其他AppBundle都將繼承此CoreBundle並將與一個網站相對應。

我需要的是在每個捆綁軟件中都有特定的參數,這些參數將覆蓋默認參數:當我使用將我帶入控制器捆綁軟件的路由時,此特定捆綁軟件的參數必須覆蓋所有其他參數。

我已經嘗試過preprend方法,但它不適合這種需求。 它只允許我為此包創建新參數,而不能覆蓋其他參數。

我認為您誤解了Symfony中捆綁軟件的想法。 設計上的捆綁軟件應該是可重用的模塊,因此捆綁軟件中的配置是默認配置。 然后可以覆蓋app文件夾中的配置中的參數(而不僅僅是!)。

基本思想是:

捆綁包不使用應用程序。 應用程序使用包。

因此,這與您的預期完全相反。 從根本上說,根據當前路由來限制整個應用程序配置是沒有意義的,因為捆綁包可以互相使用。 如果您的當前動作將在內部(無重定向)調用另一個捆綁軟件的服務甚至控制器,該怎么辦?

另外值得一提的是, app文件夾是app最終文件夾,因此,您不僅可以在其中覆蓋包的配置,而且還可以覆蓋服務,視圖模板等其他內容。

編輯:我忘了為您建議解決方案:)

由於要在包中使用自定義參數,因此為什么首先需要默認值? 只需為不會被應用程序配置覆蓋的每個包創建單獨的參數名稱空間 然后僅在該捆綁包內使用它。

找到了解決方案,這是由於dragoste詢問了分離的內核。

為了解決我的問題,我不得不拆分內核:每個網站一個。

文檔可以在這里找到:

http://jolicode.com/blog/multiple-applications-with-symfony2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM