在开发环境中禁用 Symfony 项目的 Memcache
Disable Memcache from Symfony project on dev environment
memcached:
class: Memcache
calls:
- [ addServer, ['%memcached_host%', '%memcached_port%'] ]
这是我在 config.yml 中使用的当前代码,我如何指定 Memcache 不在开发环境的 memcache->set(
) 方法上缓存数据并在生产环境中正常工作。
是否有某种标志可以关闭 Memcache?
我不熟悉 Memcache
,但处理这种情况的常见方法是在每个环境中使用单独的 config.yml
:
- 将您当前的
memcached
条目从 config.yml
移动到 config_prod.yml
(在生产环境中 memcached
将像以前一样工作)
- 在
config_dev.yml
中添加类似的 memcached
条目,但使用另一个 class - 您可能需要创建这样的 class,它可能需要扩展 Memcache
class 并覆盖您想要以不同方式表现的方法(即 set()
)。
在此配置中,您将针对不同的环境使用不同的 Memcache
class,而在开发环境中,您的 Memcache
class 将是 "dummy",这意味着什么都不做。
这是正常的 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 ]
方法
它不是杀死内存缓存进程,而是清除所有存储的数据,使它们像过期的一样。
memcached:
class: Memcache
calls:
- [ addServer, ['%memcached_host%', '%memcached_port%'] ]
这是我在 config.yml 中使用的当前代码,我如何指定 Memcache 不在开发环境的 memcache->set(
) 方法上缓存数据并在生产环境中正常工作。
是否有某种标志可以关闭 Memcache?
我不熟悉 Memcache
,但处理这种情况的常见方法是在每个环境中使用单独的 config.yml
:
- 将您当前的
memcached
条目从config.yml
移动到config_prod.yml
(在生产环境中memcached
将像以前一样工作) - 在
config_dev.yml
中添加类似的memcached
条目,但使用另一个 class - 您可能需要创建这样的 class,它可能需要扩展Memcache
class 并覆盖您想要以不同方式表现的方法(即set()
)。
在此配置中,您将针对不同的环境使用不同的 Memcache
class,而在开发环境中,您的 Memcache
class 将是 "dummy",这意味着什么都不做。
这是正常的 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 ]
方法
它不是杀死内存缓存进程,而是清除所有存储的数据,使它们像过期的一样。