2011-08-25 127 views
33

有沒有辦法在Symfony2中禁用緩存功能?我試圖在config *和parameters.ini文件中找到該設置,並且我搜索了很多。好的,我找到了一些解決方案,但沒有爲最新版本(Symfony2)。Symfony2禁用緩存?

爲什麼?因爲我想要在不清除應用程序/緩存*的情況下測試新的模板和函數。

+0

這個緩存的概念仍然令我困惑。不知道這是否可能。實際上有兩個高速緩存 - 至少 - 對於使用的組件來說,用於自動增強(twig,config,routes)和另一個。不知道,鑑於sf2 std distrib的架構,禁用緩存的想法是有意義的。 : - /代碼將不得不被大大改變我想,因爲你將不得不翻譯yml-configs,yml-routing和模板到php ...也許它更容易成爲緩存獨立如果一個使用PHP的路線,模板和配置。 – Raffael

+1

你想禁用什麼類型的緩存?對於HTTP緩存,最好的概述可能是[here](http://symfony.com/doc/current/book/http_cache.html) - 但請注意,它默認情況下並未打開。你能否詳細解釋一下你想解決的問題? –

+1

我想在不清除/ app/cache/*的情況下測試模板和配置。 – NaN

回答

66

我假設你使用的是Twig引擎(Symfony2的默認模板引擎)。要在樹枝禁用緩存,這樣你就不必保持清除緩存,像這樣:

rm -rf app/cache/* 

瀏覽到您的應用程序配置文件(defualt將位於../app/config/config。從您的根目錄yml)。滾動到樹枝配置設置(下小枝:),並改變緩存值(應指向緩存目錄)像這樣:

twig: 
    cache: false 

如果你沒有看到任何緩存配置條目,只需添加上面的行。

這也可能有助於檢出的枝條捆的配置參考:http://symfony.com/doc/2.0/reference/configuration/twig.html

編輯config_dev.yml文件後,轉到您的終端並運行:

app/console cache:clear 
+0

大家好,我試過提供的解決方案,我現在從樹枝上得到的是一張空白頁。我從來沒有在我的XML文件中的緩存選項。任何人有一個想法..? – xeon

+2

我建議只在'app_dev.php'上禁用樹枝緩存。它工作正常,遠離您的生產配置。 – PutzKipa

+1

如何禁用app_dev.php中的樹枝緩存?所有的文檔都說app_dev.php在默認情況下禁用了樹枝緩存,但是我沒有看到這種行爲。 – jhnlsn

8

好的,關於您的說明,解決方案只是通過前端控制器web/app_dev.php使用開發環境。然後sf2跟蹤您的調整,並且不必清除緩存。

4

編輯'config_dev.yml'和'config.yml',然後放入

twig: 
    cache: false 
3

除了接受的答案,我建議以某種方式編輯您的config_dev.yml,以便它仍然調試您的樹枝模板。要做到這一點,將此代碼添加到您的config_dev.yml文件:

twig: 
    cache: false 
    debug: true 

services: 
    twig.extension.debug: 
     class: Twig_Extension_Debug 
     tags: 
       - { name: 'twig.extension' } 

編輯config_dev.yml文件後,轉到您的終端並運行:

app/console cache:clear 

通過這樣做,你會重新加載您的config_dev.yml設置 - 使您的項目以新配置運行。

希望這會有所幫助。