在Yii中,我通过config/main.php文件启用了APC缓存:
'cache' => array(
'class' => 'system.caching.CApcCache',
),
,当我使用Yii的内置缓存方法时,它工作得很好:
Yii::app()->cache->set('key', $value);
但是,是否有一种方法可以根据配置暂时关闭此功能?例如,我不想让它在YII_DEBUG
设置为true时启用,并且希望$votes = Yii::app()->cache->get("key");
总是返回false,因为它是空的。
我试过通过注释配置设置来关闭这个,但它给出了(不是不合理的)错误:Call to a member function get() on a non-object
你可以配置一个根本不缓存的缓存类(所以它不会存储任何东西,get()
将始终返回FALSE
)。
可能Yii已经配备了无缓存?是的,它有,它叫做CDummyCache
,它根本不缓存。
对于你在问题中概述的问题,Yii::app()->cache
是NULL
。
看到缓存<一口>文档一口>。
如果您只需要在本地禁用缓存,请在main-local.php中添加以下代码。它将覆盖main.php
中的缓存配置'components' => [
...
'cache'=> [
'class'=>'CDummyCache',
],
...
]
CDummyCache是一个占位符缓存组件。
CDummyCache不缓存任何东西。它的提供是为了让人们总是可以配置一个"缓存"应用程序组件,而不需要检查Yii::app()->cache是否为null。通过使用其他缓存组件替换CDummyCache,可以快速地从非缓存模式切换到缓存模式。
Yii 1。x: CDummyCache doc
Yii 2。x: DummyCache doc
试试下面的代码:
'cache' => array(
'class' => 'system.caching.CFileCache'
),