CakePHP缓存元素的持续时间

时间:2012-07-07 08:42:36

标签: php cakephp element cakephp-2.0

关于cookbook我们可以缓存这样的元素:

echo $this->element('helpbox', array(), array('cache' => true));

使用配置进行缓存是这样的:

echo $this->element('helpbox', array(),
    array('cache' => array('config' => 'view_long') );

如何在没有预定义配置的情况下缓存元素?如何缓存元素的持续时间?我尝试了这个,但没有用:

echo $this->element('helpbox',  array(),
     array('cache' => array('time' => '+30 minutes')));

2 个答案:

答案 0 :(得分:2)

您需要app/Config/bootstrap.php中的configure cache

Cache::config('hour', array(
    'engine' => 'File',
    'duration' => '+1 hours',
    'path' => CACHE,
    'prefix' => 'cake_short_'
));

Cache::config('week', array(
    'engine' => 'File',
    'duration' => '+1 week',
    'probability' => 100,
    'path' => CACHE . 'long' . DS,
));

之后,您可以使用已定义的配置缓存元素:

echo $this->element('helpbox', array(), array('cache' => array('config' => 'week')));

答案 1 :(得分:0)

由于您现在只能引用命名高速缓存配置,如果要以编程方式清除高速缓存元素,则需要将Cache :: delete()与元素名称和键一起使用。

我写了blog post这个。 the relevant CakePHP forum thread中还有一些更详细的内容。

(2014年8月31日)我还没有检查这是否仍然是CakePHP 2.5中的行为。