2017-03-08 65 views
0
memcached: 
    class: Memcache 
    calls: 
      - [ addServer, ['%memcached_host%', '%memcached_port%'] ] 

這是我在config.yml使用當前的代碼我怎麼能指定的開發envirioment並正常生產的作品上memcache->set(的Memcache緩存沒有數據)的方法。禁用內存緩存從Symfony的在開發環境項目

是否有某種標誌可以關閉Memcache?

回答

3

我不熟悉Memcache,但共同的方法來這樣的情況下,使用獨立的config.yml每環境:

  1. 移動當前的memcached從入門到config.ymlconfig_prod.yml(在生產環境memcached工作如前)
  2. config_dev.yml添加類似的memcached入口但有另一個類 - 你可能需要創建這樣的類,它可能需要擴展Memcache類並覆蓋你想表現不同的方法(即set())。

在這種配置,你將有不同的Memcache類不同的環境和開發環境的Memcache類將是「假的」,意思是什麼都不做。

+0

現在我看到你的答案,但是是我沒有類似的東西我就會把我的解決方案,回答以下 –

0

這是常規的config.yml。

services: 
    memcached: 
    class: Memcache 
    calls: 
     - [ addServer, ['%memcached_host%', '%memcached_port%'] ] 

我在config_dev.yml

services: 
    memcached: 
    class: Memcache 
    calls: 
     - [ addServer, ['%memcached_host%', '%memcached_port%'] ] 
     - [ flush ] 

添加此行你會發現下面添加- [ flush ]方法 它不殺的memcache proccess但清除所有存儲的數據使他們像過期。

+1

而不是扔掉有用的東西,可能是在高速緩存中,爲什麼不爲開發環境創建一個「假」內存緩存服務,擴展和重寫Memcache類,但不保存任何內容或試圖獲取? –