Class: WindFileCache
Source Location: /cache/strategy/WindFileCache.php
Class WindFileCache
Class Overview
file缓存策略实现
提供对方访问接口如下: 它接收如下配置: array(
'dir' => 'data', //缓存文件存放的目录,注意可读可写
'suffix' => 'txt', //缓存文件的后缀,默认为txt后缀
'dir-level' => '0', //缓存文件存放目录的子目录长度,默认为0不分子目录
'security-code' => '', //继承自AbstractWindCache,安全码配置
'key-prefix' => '', //继承自AbstractWindCache,缓存key前缀
'expires' => '0', //继承自AbstractWindCache,缓存过期时间配置
)
使用方法: 1、您可以像使用普通类库一样使用该组件: Wind::import('WIND:cache.strategy.WindFileCache');
$cache->setConfig(array('dir' => 'data', 'suffix' => 'php'));
$cache->set('name', 'fileCacheTest');
2、采用组件配置的方式,通过组件机制调用 在应用配置的components组件配置块中,配置fileCache(该名字将决定调用的时候使用的组件名字): 'fileCache' => array(
'path' => 'WIND:cache.strategy.WindFileCache',
'scope' => 'singleton',
'config' => array(
'dir' => 'data',
'suffix' => 'txt',
'dir-level' => '0',
'security-code' => '',
'key-prefix' => '',
'expires' => '0',
),
), 在应用中可以通过如下方式获得dbCache对象: $fileCache = Wind::getApp()->getComponent('fileCache'); //dbCache的名字来自于组件配置中的名字
the last known user to change this file in the repository <LastChangedBy: xiaoxiao >
Located in /cache/strategy/WindFileCache.php [line 63]
WindModule
|
--AbstractWindCache
|
--WindFileCache
Author(s):
Information Tags:
|
Methods
|
Inherited Properties, Constants, and Methods
Methods
string buildSecurityKey(
string
$key
)
|
|
根据用户key计算获取真是缓存文件
缓存key在安全处理之后,判断该key是否已经被访问过 - 如果被访问过,则直接返回该真实缓存文件
- 没有访问过,则将会进入计算流程.
- 如果用该组件配置了缓存子目录的长度n:
- 获得缓存key的md5值的0~n的子字串作为子缓存目录;
- 将缓存文件存放在该缓存子目录下.同时将该缓存文件的新路径保存到已访问的缓存路径列表中,供下次直接调用.
- 如果没有配置缓存子目录长度,则直接将该文件缓存在缓存根目录下,同时也将该缓存文件路径保存在已访问的缓存路径列表中.
Parameters:
API Tags:
Return: | 真实的缓存文件 |
Access: | protected |
Redefinition of:
- AbstractWindCache::buildSecurityKey()
- 将数据key计算生成安全的key
int getCacheDirectoryLevel(
)
|
|
返回缓存存放的目录下子目录的长度
该值将会决定缓存目录下子缓存目录的长度,最小为0(不建子目录),最大为32(md5值最长32),缺省为0
API Tags:
void setCacheDir(
string
$dir
)
|
|
设置缓存目录
Parameters:
string |
$dir: |
缓存目录,必须是可写可读权限 |
API Tags:
void setCacheDirectoryLevel(
int
$cacheDirectoryLevel
)
|
|
设置缓存存放的目录下子目录的长度
Parameters:
int |
$cacheDirectoryLevel: |
该值将会决定缓存目录下子缓存目录的长度,最小为0(不建子目录),最大为32(md5值最长32),缺省为0 |
API Tags:
void setCacheFileSuffix(
string
$cacheFileSuffix
)
|
|
设置缓存文件的后缀
Parameters:
string |
$cacheFileSuffix: |
缓存文件的后缀,默认为txt |
API Tags:
|
|