基本缓存服务为 FleaPHP 的数据库访问提供支持,用于提高数据库访问组件的性能。
开发者也可以在应用程序中使用基本缓存服务来缓存一些应用程序经常用到的,并较少变动的数据。
函数原型:
/**
* 读取指定缓存的内容,如果缓存内容不存在或失效,则返回 false
*
* @param string $cacheId 缓存ID,不同的缓存内容应该使用不同的ID
* @param int $time 缓存过期时间或缓存生存周期
* @param boolean $timeIsLifetime 指示 $time 参数的作用
* @param boolean $cacheIdIsFilename 指示是否用 $cacheId 作为缓存文件的文件名
*
* @return mixed 返回缓存的内容,缓存不存在或失效则返回 false
*/
function getCache($cacheId, $time = 900, $timeIsLifetime = true, $cacheIdIsFilename = false)
缓存文件名是根据 $cacheId 用 md5 算法生成的。如果希望使用 $cacheId 来指定缓存文件名,则 $cacheIdIsFilename 参数应该为 true。
缓存文件全部保存在应用程序设置 internalCacheDir 指定的目录中。因此该目录必须就有可写权限。
当 $timeIsLifetime 参数为 true 时,该函数会检查缓存文件的最后更新日期加上 $time 是否大于当前时间。如果是,则返回 false,表示缓存的内容已经过期。
如果 $timeIsLifetime 参数为 true,且 $time 参数为 –1,则表示缓存数据永不过期。
如果 $timeIsLifetime 参数为 false,则该函数会检查缓存文件的最后更新日期是否大于 $time 参数指定的时间。如果是,则返回 false。
使用示例:
复制内容到剪贴板
代码:
// 用法 1:缓存数据,缓存数据生存期为 900 秒
$cacheId = 'myDataCache';
$data = FLEA::getCache($cacheId, 900);
if (!$data) {
// 从数据库读取数据
$data = $dbo->getAll($sql);
FLEA::writeCache($cacheId, $data);
}
// 用法 2:以原始文件的最后更新日期来判断缓存是否有效
$xmlFilename = 'myData.xml';
$xmlData = FLEA::getCache($xmlFilename, filemtime($xmlFilename), false);
if (!$xmlData) {
$xmlData = parseXML($xmlFilename);
FLEA::writeCache($xmlFilename, $xmlData);
}