我有一個腳本,它使Symfony2配置發生變化,並且在繼續(特別是添加dbal連接)之前需要知道新配置。有沒有辦法在腳本執行期間強制重新加載配置?在Symfony2中強制配置重載
回答
更新:您不能重新加載配置,但你可以設置即時的參數,見第二個「更新」段落
這不是真的有可能在Symfony2中做到這一點。
在生產模式,一切(甚至配置)被緩存,所以你必須清除緩存與
app/console cache:clear --env=prod --no-debug
(也許後面是app/console cache:warmup --env=prod --no-debug
)
重新加載配置。在開發模式下,您可以試驗shutdown()
,然後從Symfony\Component\HttpKernel\Kernel
或loadClassCache
開始boot()
- 但所有這些都不是您想要的。
配置文件有什麼改變?也許你應該爲不同的環境使用不同的文件,或考慮使用其他方法來獲取這些更改(通過簡單的Web服務甚至從Controller中讀取靜態文件)。
更新:
我想通了,你可以設置您的容器配置參數通過
$container->setParameter('parameter', value);
上即時看一看the Symfony2 documentation。
我正在創建其他數據庫連接並將它們添加到config.yml文件(作爲多租戶設置的一部分)。 – 2013-04-09 07:28:50
我剛剛更新了我的問題。這可能會幫助你。 – akluth 2013-04-10 11:04:12
我的答案很可能到達很晚,但可能對其他人有用。 「prod」環境的Symfony緩存存儲在「app/cache/prod /」文件夾中,幷包含很多內容(Twig模板在PHP中以「twig /」子文件夾翻譯,「annotations /」子文件夾中的註釋以及。 ..配置參數,應用* ProjectContainer.php文件,以及其他許多事情)。
所以你可以做的是:當你的配置腳本改變參數.yml時,它也可以刪除appProdProjectContainer.php。下一個擊中Symfony應用程序的用戶將面臨更長的響應時間,但新的配置參數將被考慮和緩存。
- 1. 在JQuery中強制重載
- 2. 如何強制重新載入NLog配置文件?
- 3. 如何在Symfony2中強制下載遠程文件?
- 4. 強制NSBrowser重新加載
- 5. 強制重載圖像jsf
- 6. mod_wsgi強制重載模塊
- 7. 強制重新加載javascript
- 8. C++指針強制重載
- 9. 在Symfony2配置中動態設置BaseUrl
- 10. symfony2 - 如何重載控制器__construct
- 11. 如何在項目配置更改時強制重建?
- 12. MsBuild:在更改構建配置時強制重建
- 13. JavaScript:如何強制頁面重新加載重置?
- 14. 的Symfony2 + DoctrineMongoDBBundle配置
- 15. Symfony2查詢配置
- 16. 如何在symfony2中配置Doctrine?
- 17. 增強而不是重寫Maven配置
- 18. 強制下載後的Codeigniter重定向
- 19. 如何強制重新加載WebImageView?
- 20. PHP表單提交,強制CSS重載?
- 21. 強制瀏覽器重新加載index.htm
- 22. 強制重載/防止Web Workers緩存
- 23. 如何強制重新加載實體?
- 24. Apache重寫規則強制下載
- 25. Java/SWT/JFace強制重新加載GUI?
- 26. 強制eclipse重新加載Python模塊
- 27. 重定向和強制下載
- 28. 強制用戶重新加載頁面
- 29. 瀏覽器200(緩存)強制重載
- 30. 強制RequireJS文本!重新加載
不知道這是否可能,這基本上意味着在運行腳本時必須重新初始化整個Service Container,如果可以在運行腳本時重新啓動內核,可以看一下app.php? – Hannes 2013-04-04 16:34:50