自定义缓存引擎在 CakePhp 2.6 中不起作用
Custom Cache Engine Not Working in CakePhp 2.6
我正在尝试在 CakePhp 中从 ZF2 实现 Zend Cache,以利用它的标记功能等。
我在 /app/Lib/Cache/Engine/ZendCacheEngine 中创建了一个 class。php
class ZendCacheEngine extends CacheEngine {
//All abstract functions from Cake's CacheEngine are
public function init($settings = array()){
//Code here....
}
//Along with read, write, delete, etc...
}
目前,我在这些函数中只有一个 print "function name" 和一个 return。我这样做是为了调试正在发生的事情。
在我的 bootstrap.php 中,我为我的自定义设置了配置 class:
Cache::config('custom_zend', array(
'engine' => 'ZendCache',
'duration' => '+1 hours',
'probability' => 100,
));
当我尝试在我的控制器中使用它时,缓存读取和写入功能被完全忽略。 (在我的例子中没有打印函数名称,除了 init 函数)
public function news($id, $something) {
$result = Cache::read('news', 'custom_zend');
if (!$result) {
$result = $this->News->find('all'); // For the sake of simplicity here
Cache::write('news', $result, 'custom_zend');
}
$this->set('news',$news);
}
最重要的是,我假设文件位于正确的位置并且配置正确(因为正在调用自定义 class 中的 init() 函数)。
我需要知道为什么实际的 read/write/etc... 没有被调用。
事实证明 init() 没有正确设置 $settings 数组,这就是其他函数没有被调用的原因。
我正在尝试在 CakePhp 中从 ZF2 实现 Zend Cache,以利用它的标记功能等。
我在 /app/Lib/Cache/Engine/ZendCacheEngine 中创建了一个 class。php
class ZendCacheEngine extends CacheEngine {
//All abstract functions from Cake's CacheEngine are
public function init($settings = array()){
//Code here....
}
//Along with read, write, delete, etc...
}
目前,我在这些函数中只有一个 print "function name" 和一个 return。我这样做是为了调试正在发生的事情。
在我的 bootstrap.php 中,我为我的自定义设置了配置 class:
Cache::config('custom_zend', array(
'engine' => 'ZendCache',
'duration' => '+1 hours',
'probability' => 100,
));
当我尝试在我的控制器中使用它时,缓存读取和写入功能被完全忽略。 (在我的例子中没有打印函数名称,除了 init 函数)
public function news($id, $something) {
$result = Cache::read('news', 'custom_zend');
if (!$result) {
$result = $this->News->find('all'); // For the sake of simplicity here
Cache::write('news', $result, 'custom_zend');
}
$this->set('news',$news);
}
最重要的是,我假设文件位于正确的位置并且配置正确(因为正在调用自定义 class 中的 init() 函数)。
我需要知道为什么实际的 read/write/etc... 没有被调用。
事实证明 init() 没有正确设置 $settings 数组,这就是其他函数没有被调用的原因。