2017-03-08 93 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类,但不保存任何内容或试图获取? –