自定义缓存引擎在CakePhp 2.6中不起作用

时间:2015-02-03 16:21:14

标签: php cakephp caching zend-framework2

我正在尝试从CakePhp中的ZF2实现Zend Cache,以利用它的标记功能等。

我在/app/Lib/Cache/Engine/ZendCacheEngine.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...
}

目前,我在这些功能中只有一个打印“功能名称”并返回。我在努力调试正在进行的工作时这样做了。

在我的bootstrap.php中,我为自定义类设置了配置:

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);   
    }

结束语,我假设文件位于正确的位置并且配置正确(因为我的自定义类中的init()函数被调用)。

我需要知道为什么实际的读/写/等等没有被调用。

1 个答案:

答案 0 :(得分:0)

事实证明,init()没有正确设置$ settings数组,这就是为什么没有调用其他函数的原因。