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