[英]Symfony 2 Different behaviors between prod and dev environments
上下文:今天,我被要求在一個相當老的項目(例如Symfony 2.0)中添加一個新功能。 它包括將新屬性添加到實體,並將相應字段添加到編輯表單。 兒童游戲:我已經編輯了代碼,並且在開發環境中效果很好(直接在app.php中設置)
問題:在app.php中設置的環境為prod
時,提交表單時該實體不會持久化,而在加載表單時也不會檢索該實體。
調查:到目前為止,我在prod
env中檢查的內容:
假設:刷新實體時似乎會出現此問題,就像新字段完全被忽略一樣。
假設:在向經驗豐富的symfony開發人員展示了我的問題之后,唯一的建議是,某個地方可能存在一個PHP緩存(而不是symfony緩存),這使我的prod
env處於寄生狀態。 這個假設正在測試中(我自己無法重新啟動apache),也許明天明天將在最佳情況下對其進行測試。
不過,我仍然覺得PHP緩存假設有10%的幾率才是好的。 我無法與您分享整個項目的代碼,但是我問您是否可以發表關於此問題的所有想法。
更新:我已經重新啟動了Apache2。 問題仍然存在。 即使app / cache /為空,Doctrine似乎仍在項目的舊版本上構建其緩存(例如,注釋中看不到任何更改)。 任何想法 ?
我已經手動和從命令行多次刪除了緩存
你能澄清一下嗎? Symfony的緩存與學說的緩存不同。 根據您的配置原則,可以使用諸如apc,reddis之類的東西或其他東西來緩存其自己的查詢和結果數據。 如果還沒有,請嘗試執行以下命令:
app/console doctrine:cache:clear-metadata
app/console doctrine:cache:clear-query
app/console doctrine:cache:clear-result
如果您仍然不走運,那么我有10%的把握確保重新啟動apache可以解決問題。
如果這可行,則應檢查prods config yml,看看是否找到類似以下內容的東西:
metadata_cache_driver : something
result_cache_driver : something
query_cache_driver : something
完整的答案是執行:
app/console doctrine:cache:clear-metadata --env=prod
緩存是由僅在生產環境中存在的memcache配置引起的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.