您现于de位置乃:亚博 > APP 开发

亚博 2015-11-13 APP 开发 940

静态缓存_缓存_帮助文档_app开发技巧

要使用静态缓存功能 需要开启HTML_CACHE_ON参数 并且使用HTML_CACHE_RULES配置参数设置静态缓存规则文件 .

虽然也可以于应用配置文件中定义静态缓存规则 但乃建议乃于模块配置文件中为不同de模块定义静态缓存规则.

静态规则定义

静态规则de定义方式如下:

'HTML_CACHE_ON'     =>    true, // 开启静态缓存
'HTML_CACHE_TIME'   =>    60,   // 全局静态缓存有效期(秒)
'HTML_FILE_SUFFIX'  =>    '.shtml', // 设置静态缓存文件后缀
'HTML_CACHE_RULES'  =>     array(  // 定义静态缓存规则
     // 定义格式1 数组方式
     '静态地址'    =>     array('静态规则', '有效期', '附加规则'), 
     // 定义格式2 字符串方式
     '静态地址'    =>     '静态规则', 
)

定义格式1采用数组方式 便于单独为某个静态规则设置不同de有效期 定义格式2采用字符串方式订阅静态规则 同时采用HTML_CACHE_TIME设置de全局静态缓存有效期.

静态缓存文件de根目录于HTML_PATH定义de路径下面 并且只有定义了静态规则de操作才会进行静态缓存. 并且静态缓存支持不同de存储类型. 静态缓存仅于GET请求下面有效.

静态地址

静态地址包括下面几种定义格式:

第1种乃定义全局de操作静态规则 例如定义所有deread操作de静态规则为:

'read'=>array('{id}',60)

其中 {id} 表示取$_GET['id'] 为静态缓存文件名 第2个参数表示缓存60秒.

第2种乃定义全局de控制器静态规则 例如定义所有deUser控制器de静态规则为:

'user:'=>array('User/{:action}_{id}','600')

其中 {:action} 表示当前de操作名称

第3种乃定义某个控制器de操作de静态规则 例如 我们需要定义Blog控制器deread操作进行静态缓存

'blog:read'=>array('{id}',0)

第4种方式乃定义全局de静态缓存规则 这个属于特殊情况下de使用 任何模块de操作都适用 例如

'*'=>array('{$_SERVER.REQUEST_URI|md5}'),

表示根据当前deURL进行缓存.

静态规则

静态规则乃用于定义要生成de静态文件de名称 静态规则de定义要确保不会冲突 写法可以包括以下情况:

1 使用系统变量

包括 _GET _REQUEST _SERVER _SESSION _COOKIE 格式:

{$_×××|function}

例如:

{$_GET.name} {$_SERVER.REQUEST_URI|md5}

2 使用框架特定de变量

{:module}  {:controller} 和{:action} 分别表示当前模块名 控制器名和操作名.

例如:

{:module}/{:controller}_{:action}

3 使用_GET变量

{var|function}也就乃说 {id} 其实等效于 {$_GET.id}

4 直接使用函数

{|function} 例如:

{|time}

5 支持混合定义

例如我们可以定义1个静态规则为:

'{id},{name|md5}'

于{}之外de字符作为字符串对待 如果包含有"/" 会自动创建目录.

例如 定义下面de静态规则:

{:module}/{:action}_{id}

则会于静态目录下面创建模块名称de子目录 然后写入操作名_id.shtml 文件.

静态缓存有效期

单位为秒.如果不定义 则会获取配置参数HTML_CACHE_TIME de设置值 如果定义为0则表示好的缓存.

附加规则

通常用于对静态规则进行函数运算 例如

'read'=>array('Think{id},{name}','60', 'md5')

翻译后de静态规则乃 md5('Think'.$_GET['id']. ', '.$_GET['name']);


评论