Cache 类別

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_expiration true 藉由設定为 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) ));