Cache クラス
Cache クラスを使用すると、リソースの重い操作の結果をキャッシュすることができます。
使用方法
キャッシュを使用するには、 2 つの方法 (Cache クラスの静的な使い方を利用する、または Cache::forge() によって返された cache オブジェクトを利用する) で行うことができます。
このセクションでは、設定 の中で指定した、
同じドライバで常に動作する静的な使い方をカバーしています。
cache オブジェクトと Cache::forge() の使い方は、
advanced セクションの中で説明されています。
ガベージコレクション
キャッシュドライバに組み込まれているガベージコレクション機構は、今のところ ありません 。
APC 、 Memcached や Redis のような有効期限が内部でサポートされているストレージバックエンドは、
その機能を使用し、古いキャッシュエントリが自動で期限切れになります。
これは、キャッシュしたエントリを保存するためにファイル (キャッシュドライバ) を使用する場合は、
最終更新日時に基いて定期的に全ての古いファイルを削除する cron ジョブを書く必要があるということです!
set($identifier, $contents = null, $expiration = false, $dependencies = array())
キャッシュを書き込みます。
静的 |
はい |
パラメータ |
パラメータ |
デフォルト |
説明 |
$identifier |
string |
キャッシュの名前 |
$contents |
mixed |
キャッシュされる内容 |
$expiration |
int |
キャッシュの有効期限が切れるまでの秒数。
null のときは無期限となり、false のときは設定でセットされているデフォルトの有効期限が使われます。 |
$dependencies |
array |
このキャッシュが依存する識別子の配列。
これらの 1 つでも新しいまたは存在しないとき、このキャッシュは有効期限切れになります。 |
|
返り値 |
void |
例 |
// 'String to be cached' を識別子 "test" とともに 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 |
string |
キャッシュの名前 |
$use_expiration |
true |
これを false にセットすることによって、取得するキャッシュの有効期限を無効にします |
|
返り値 |
mixed - キャッシュの内容 |
例外 |
キャッシュが存在しないときは CacheNotFoundException 、または有効期限が切れているときは CacheExpiredException |
例 |
// キャッシュの取得を試し、変数 $content に保存する
try
{
$content = Cache::get('test');
}
catch (\CacheNotFoundException $e)
{
/*
例外 CacheNotFoundException をキャッチすると、
CacheNotFoundException と CacheExpiredException の両方をキャッチします。
例外をキャッチするときにはこれを使います。
*/
}
|
delete($identifier)
キャッシュを削除する。
静的 |
はい |
パラメータ |
パラメータ |
デフォルト |
説明 |
$identifier |
string |
キャッシュの名前 |
|
返り値 |
void |
例 |
Cache::delete('test');
|
delete_all($section = null, $driver = null)
指定したドライバのキャッシュ全体、またはそのサブセクションを消去します。
静的 |
はい |
パラメータ |
パラメータ |
デフォルト |
説明 |
$section |
string |
セクションまたはキャッシュのディレクトリ。 null のときは全てを削除します |
$driver |
string |
使うドライバの名前。 null のときはデフォルトのドライバを使用します。 |
|
返り値 |
void |
例 |
// デフォルトのドライバの全てのキャッシュを削除
Cache::delete_all();
// ファイル (キャッシュドライバ) のサブディレクトリ "test" を削除
Cache::delete_all('test', 'file');
|
call($identifier, $callback, $args = array(), $expiration = null, $dependencies = array())
任意のコール可能な関数またはメソッドの結果をキャッシュする。
静的 |
はい |
パラメータ |
パラメータ |
デフォルト |
説明 |
$identifier |
string |
キャッシュの名前 |
$callback |
mixed |
任意の有効な PHP コールバック |
$args |
array |
コールバックの引数 |
$expiration |
int |
キャッシュの有効期限が切れるまでの秒数。
null のときは無期限となり、false のときは設定でセットされているデフォルトの有効期限が使われます。 |
$dependencies |
array |
このキャッシュが依存する識別子の配列。
これらの 1 つでも新しいまたは存在しないとき、このキャッシュは有効期限切れになります。 |
|
返り値 |
void |
例 |
// モデル find の結果をキャッシュする
Cache::call('article_something', array('Model_Article', 'find'), array("all", array( 'where' => array('something' => $something) ));
|