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) ));
|