我有一個腳本,它使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. Symfony2:如何強制下載
- 2. 在JQuery中強制重載
- 3. Symfony2配置加載順序
- 4. 強制重載EntityManager
- 5. 如何強制重新載入NLog配置文件?
- 6. Symfony2 - 強制用戶完成配置文件
- 7. 強制在類定義中重載重載?
- 8. mod_wsgi強制重載模塊
- 9. 強制重載圖像jsf
- 10. 強制NSBrowser重新加載
- 11. 強制重新加載javascript
- 12. C++指針強制重載
- 13. 強制重新加載uiwebview
- 14. 強制配置問題
- 15. 在Symfony2配置中動態設置BaseUrl
- 16. MsBuild:在更改構建配置時強制重建
- 17. 如何在項目配置更改時強制重建?
- 18. JavaScript:如何強制頁面重新加載重置?
- 19. 強制IE9在重定向後加載未緩存的位置
- 20. symfony2 - 如何重載控制器__construct
- 21. 如何從Symfony2中的數據庫加載配置設置?
- 22. 的Symfony2 + DoctrineMongoDBBundle配置
- 23. Symfony2查詢配置
- 24. 如何在symfony2中配置Doctrine?
- 25. PHP強制下載問題(服務器配置問題)
- 26. 配置更改期間強制操作欄重新佈局
- 27. Android NDK - 配置更改時強制庫重建
- 28. symfony2如何在Ajax中強制下載返回json數據類型
- 29. 在頁面加載後強制重繪/重新繪製firefox中的DOM元素
- 30. 增強而不是重寫Maven配置
不知道這是否可能,這基本上意味着在運行腳本時必須重新初始化整個Service Container,如果可以在運行腳本時重新啓動內核,可以看一下app.php? – Hannes 2013-04-04 16:34:50