CakePHP开发之视图缓存


当对指定URL发起请求时,CakePHP首先检查该URL是否已经被缓存.如果已被缓存,CakePHP就会绕开分发器(dispatcher.php)直接返回已经缓存起来的页面.反之,则通过正常的机制来输出视图.

如果已经 激活Cake缓存机制,Cake会缓存输出的页面已备下次调用。

可以选择缓存某些页面,也可以标记某部分视图不被缓存.

Cache工作设置:
默认情况下,页面缓存机制是 禁用的.为了要激活这个功能,首先要在/app/config/core.php中将 CACHE_CHECK的值设为true.
在希望缓存的视图所对应的controller中包含CacheHelper:

var $helpers = array('Cache');
controller中的$cacheAction数组变量中定义了哪些视图(view)将会被缓存.
$cacheAction包含了所有希望被缓存的action名字和对应缓存的生命周期.

class ProductsController extends AppController{
var $cacheAction = array('view/23/' => 21600, 'view/48/' => 21600,);
var $cacheAction = array('recalled/' => 46400);
}

视图中缓存标记
有时候希望页面上的部分内容不被缓存.
将不希望缓存的内容用 (cake:nocache)标签包起来就可以达到部分内容不被缓存的目的.

<h5><cake:nocache>example</h5>
<h1>New Products!</h1>
<cache:nocache>
<ul>
<?php
foreach($newProducts as $product:)
?>
<li>$product['name']</li>
<?endforeach;?>
</cake:nocache>
</ul>

清空缓存
当数据库发生变动时CakePHP会自动清空缓存.

Cake提供了 clearCache(cache.php)函数来手动清空缓存,该函数是一个全局的函数:

你可能感兴趣的:(PHP,工作,cache,cakephp)