当前位置: 首页 > 文档资料 > FuelPHP 中文文档 >

Cache 用法 - 类別

优质
小牛编辑
127浏览
2023-12-01

Cache 类别能让你快取资源大量操作的结果。

用法

可用两种方法使用快取:透过静态的 Cache 类别使用和透过 Cache::forge() 回传的快取物件。此章节包括静态的使用, 它将总是使用和 配置 中指定的相同驱动。

使用快取物件和 Cache::forge() 在 进阶 段落里有解释。

垃圾回收

目前还 没有 垃圾回收机制建构在 Cache 驱动之中, 后端储存有内建支援资料过期,如 APC、Memcached 或 Redis, 将使用该特性并将自动让过旧的快取条目过期。

这意味着,如果你使用档案储存你的快取条目,你将必须写一个排程工作(cron job), 基于最后修改的时间戳记,定期删除所有旧档案!

set($identifier, $contents = null, $expiration = false, $dependencies = array())

写入一个快取。

静态
参数
参数预设描述
$identifier字串快取名称
$contents混合要被快取的内容
$expiration整数直到快取过期的秒数,null 将使它永不过期, false 使它使用配置中的预设过期设定。
$dependencies阵列此快取依赖的识别码阵列,如果其中之一是新的或已不存在了, 此快取将过期。
回传
範例
// 以识别码 "test" 快取 'String to be cached' 3 小时
Cache::set('test', 'String to be cached.', 3600 * 3);

// 你可以添加一个部份或用句点表示法的快取目录
Cache::set('test.test', 'String to be cached.', 3600 * 3);

get($identifier, $use_expiration = true)

取回一个快取。

静态
参数
参数预设描述
$identifier字串快取名称
$use_expirationtrue藉由设定为 false 来为此次抓取停用快取
回传混合 - 快取内容
抛出CacheNotFoundException 当快取不存在时,或 CacheExpiredException 当它已经过期时
範例
// 尝试取回快取并储存到 $content 变数
try
{
	$content = Cache::get('test');
}
catch (\CacheNotFoundException $e)
{
	/*
		捕捉 CacheNotFoundException 例外
		将同时捕捉 CacheNotFoundException 和 CacheExpiredException。
		使用此当捕捉例外时。
	*/
}

delete($identifier)

删除一个快取。

静态
参数
参数预设描述
$identifier字串快取名称
回传
範例
Cache::delete('test');

delete_all($section = null, $driver = null)

为指定储存驱动或只是其中的子段落清除全部快取。

静态
参数
参数预设描述
$section字串快取的段落或目录名称,null 以删除所有东西
$driver字串要使用的驱动名称,null 以使用预设驱动。
回传
範例
// 删除预设驱动的全部快取
Cache::delete_all();

// 删除 file 的子目录 "test"
Cache::delete_all('test', 'file');

call($identifier, $callback, $args = array(), $expiration = null, $dependencies = array())

快取任何可呼叫函式或方法的结果。

静态
参数
参数预设描述
$identifier字串快取名称
$callback混合任何有效的 PHP 回呼(callback)
$args阵列给回呼(callback)的任何参数
$expiration整数直到快取过期的秒数,null 将使它永不过期, false 使它使用配置中的预设过期设定。
$dependencies阵列此快取依赖的识别码阵列,如果其中之一是新的或已不存在了, 此快取将过期。
回传
範例
// 快取模型搜寻结果
Cache::call('article_something', array('Model_Article', 'find'), array("all", array( 'where' => array('something' => $something) ));