在我的Symfony 2.8
項目中,我使用包繼承來覆蓋/擴展FOSUserBundle
:自定義包中具有相同路徑和名稱的文件覆蓋了FOSUserBundle
中的原始文件。Symfony包繼承 - 如何覆蓋/擴展服務類
雖然這適用於控制器和資源(如翻譯和視圖),但它似乎不適用於服務類。
例如,FOSUserBundle
使用Resources\config\util.xml
來定義fos_user.util.password_updater
服務以使用Util\PasswordUpdater.php
中定義的類。
簡單地將Util\PasswordUpdater.php
添加到繼承的包不起作用。該文件將被忽略,並且該包仍然使用原始版本。
這是服務的縮進行爲(因爲原始服務定義仍然指向原始文件),還是我做錯了什麼?
覆蓋/擴展服務的正確方法是什麼?我發現information,使用compiler pass
是最好的解決方案。但是,如果已經使用了bundle繼承,這是否也是真的?
用編譯器傳遞覆蓋服務是最好的解決方案。我認爲服務比控制器和資源更早加載。 – Rawburner
你試過編輯'app/config.service.yml'嗎? – AnthonyB