インターフェース yii\caching\CacheInterface
CacheInterface はキャッシュの基本インターフェースです。
データ項目は、set() を呼び出すことでキャッシュに保存され、後で (同じリクエストまたは異なるリクエストで) get() によって取得できます。どちらの操作でも、データ項目を識別するキーが必要です。有効期限と/または 依存関係 は、set() を呼び出すときに指定することもできます。get() を呼び出すときにデータ項目が期限切れになったり、依存関係が変更されたりすると、キャッシュはデータを返しません。
キャッシュの一般的な使用パターンは次のとおりです。
$key = 'demo';
$data = $cache->get($key);
if ($data === false) {
// ...generate $data here...
$cache->set($key, $data, $duration, $dependency);
}
CacheInterface は ArrayAccess インターフェースを拡張するため、配列のように使用できます。例:
$cache['foo'] = 'some data';
echo $cache['foo'];
キャッシュの詳細と使用方法については、キャッシングに関するガイド記事を参照してください。
バージョン | 説明 |
---|---|
2.0.13. | 以前のフレームワークバージョンでは、抽象クラス [[yii\caching\Cache]] がインターフェースとして使用されていました。 |
公開メソッド
メソッド | 説明 | 定義元 |
---|---|---|
add() | キャッシュにこのキーが含まれていない場合、キーで識別される値をキャッシュに保存します。 | yii\caching\CacheInterface |
buildKey() | 指定されたキーから正規化されたキャッシュキーを構築します。 | yii\caching\CacheInterface |
delete() | 指定されたキーを持つ値をキャッシュから削除します。 | yii\caching\CacheInterface |
exists() | 指定されたキーがキャッシュに存在するかどうかを確認します。 | yii\caching\CacheInterface |
flush() | キャッシュからすべての値を削除します。 | yii\caching\CacheInterface |
get() | 指定されたキーでキャッシュから値を取得します。 | yii\caching\CacheInterface |
getOrSet() | このメソッドは、set() メソッドと get() メソッドを組み合わせて、キー $key で識別される値を取得するか、キー $key のキャッシュがない場合に $callable の実行結果を保存します。 | yii\caching\CacheInterface |
multiAdd() | キャッシュに複数の項目を保存します。各項目には、キーで識別される値が含まれています。 | yii\caching\CacheInterface |
multiGet() | 指定されたキーでキャッシュから複数の値を取得します。 | yii\caching\CacheInterface |
multiSet() | キャッシュに複数の項目を保存します。各項目には、キーで識別される値が含まれています。 | yii\caching\CacheInterface |
set() | キーで識別される値をキャッシュに保存します。 | yii\caching\CacheInterface |
メソッド詳細
キャッシュにこのキーが含まれていない場合、キーで識別される値をキャッシュに保存します。
キャッシュに既にキーが含まれている場合、何も行われません。
public abstract boolean add ( $key, $value, $duration = 0, $dependency = null ) | ||
$key | mixed |
キャッシュされる値を識別するキー。これは、単純な文字列またはキーを表す要素で構成される複雑なデータ構造にすることができます。 |
$value | mixed |
キャッシュされる値 |
$duration | integer |
キャッシュされた値が期限切れになる秒数。0 は期限切れにならないことを意味します。 |
$dependency | yii\caching\Dependency|null |
キャッシュされたアイテムの依存関係。依存関係が変更された場合、get() を介してフェッチされるときに、キャッシュ内の対応する値が無効になります。このパラメータは、serializer が false の場合は無視されます。 |
戻り値 | boolean |
値が正常にキャッシュに保存されたかどうか |
---|
public function add($key, $value, $duration = 0, $dependency = null);
指定されたキーから正規化されたキャッシュキーを構築します。
指定されたキーが英数字のみで構成され、32文字以内の文字列である場合、キーはkeyPrefixを付与されて返されます。それ以外の場合は、指定されたキーをシリアライズし、MD5ハッシュを適用し、keyPrefixを付与することで正規化されたキーが生成されます。
public abstract string buildKey ( $key ) | ||
$key | mixed |
正規化するキー |
戻り値 | string |
生成されたキャッシュキー |
---|
public function buildKey($key);
指定されたキーを持つ値をキャッシュから削除します。
public abstract boolean delete ( $key ) | ||
$key | mixed |
キャッシュから削除する値を特定するキー。これは単純な文字列でも、キーを表す要素で構成される複雑なデータ構造でもかまいません。 |
戻り値 | boolean |
削除中にエラーが発生しなかった場合 |
---|
public function delete($key);
指定されたキーがキャッシュに存在するかどうかを確認します。
データが大きい場合、キャッシュから値を取得するよりも高速になる可能性があります。キャッシュがこの機能をネイティブでサポートしていない場合、このメソッドはそれをシミュレートしようとしますが、取得するよりもパフォーマンスが向上することはありません。このメソッドは、キャッシュされたデータに関連付けられた依存関係(もしあれば)が変更されたかどうかをチェックしないことに注意してください。したがって、get() を呼び出すと false が返される可能性がありますが、exists は true を返します。
public abstract boolean exists ( $key ) | ||
$key | mixed |
キャッシュされた値を特定するキー。これは単純な文字列でも、キーを表す要素で構成される複雑なデータ構造でもかまいません。 |
戻り値 | boolean |
キャッシュに値が存在する場合は true、キャッシュに値が存在しないか期限切れの場合は false。 |
---|
public function exists($key);
キャッシュからすべての値を削除します。
キャッシュが複数のアプリケーション間で共有されている場合は、この操作の実行に注意してください。
public abstract boolean flush ( ) | ||
戻り値 | boolean |
フラッシュ操作が成功したかどうか。 |
---|
public function flush();
指定されたキーでキャッシュから値を取得します。
public abstract mixed get ( $key ) | ||
$key | mixed |
キャッシュされた値を特定するキー。これは単純な文字列でも、キーを表す要素で構成される複雑なデータ構造でもかまいません。 |
戻り値 | mixed |
キャッシュに格納されている値。値がキャッシュにない場合、期限切れの場合、またはキャッシュされたデータに関連付けられた依存関係が変更された場合は false。 |
---|
public function get($key);
このメソッドは、set() メソッドと get() メソッドを組み合わせて、キー $key で識別される値を取得するか、キー $key のキャッシュがない場合に $callable の実行結果を保存します。
使用例
public function getTopProducts($count = 10) {
$cache = $this->cache; // Could be Yii::$app->cache
return $cache->getOrSet(['top-n-products', 'n' => $count], function ($cache) use ($count) {
return Products::find()->mostPopular()->limit($count)->all();
}, 1000);
}
public abstract mixed getOrSet ( $key, $callable, $duration = null, $dependency = null ) | ||
$key | mixed |
キャッシュされる値を識別するキー。これは、単純な文字列またはキーを表す要素で構成される複雑なデータ構造にすることができます。 |
$callable | callable|Closure |
キャッシュする値を生成するために使用される callable またはクロージャ。$callable が |
$duration | integer|null |
キャッシュが期限切れになるまでのデフォルトの期間(秒単位)。設定しない場合、defaultDuration 値が使用されます。 |
$dependency | yii\caching\Dependency|null |
キャッシュされた項目の依存関係。依存関係が変更された場合、get() 経由でフェッチされると、キャッシュ内の対応する値が無効になります。serializer が |
戻り値 | mixed |
$callable の実行結果 |
---|
public function getOrSet($key, $callable, $duration = null, $dependency = null);
キャッシュに複数の項目を保存します。各項目には、キーで識別される値が含まれています。
キャッシュにそのようなキーがすでに含まれている場合、既存の値と有効期限が保持されます。
public abstract array multiAdd ( $items, $duration = 0, $dependency = null ) | ||
$items | array |
キャッシュする項目を、キーと値のペアとして指定します。 |
$duration | integer |
キャッシュされた値が期限切れになるまでのデフォルトの秒数。0は期限切れにならないことを意味します。 |
$dependency | yii\caching\Dependency|null |
キャッシュされた項目の依存関係。依存関係が変更された場合、get() 経由でフェッチされると、キャッシュ内の対応する値が無効になります。serializer が false の場合、このパラメータは無視されます。 |
戻り値 | array |
失敗したキーの配列 |
---|
public function multiAdd($items, $duration = 0, $dependency = null);
指定されたキーでキャッシュから複数の値を取得します。
一部のキャッシュ(memcache、apcなど)では、複数のキャッシュされた値を同時に取得できるため、パフォーマンスが向上する可能性があります。キャッシュがこの機能をネイティブでサポートしていない場合、このメソッドはそれをシミュレートしようとします。
public abstract array multiGet ( $keys ) | ||
$keys | string[] |
キャッシュされた値を特定する文字列キーのリスト |
戻り値 | array |
指定されたキーに対応するキャッシュされた値のリスト。配列は (キー、値) ペアの形式で返されます。値がキャッシュされていないか期限切れの場合、対応する配列の値は false になります。 |
---|
public function multiGet($keys);
キャッシュに複数の項目を保存します。各項目には、キーで識別される値が含まれています。
キャッシュにそのようなキーがすでに含まれている場合、既存の値と有効期限はそれぞれ新しい値で置き換えられます。
public abstract array multiSet ( $items, $duration = null, $dependency = null ) | ||
$items | array |
キャッシュする項目を、キーと値のペアとして指定します。 |
$duration | integer|null |
キャッシュが期限切れになるまでのデフォルトの期間(秒単位)。設定しない場合、デフォルトの defaultDuration 値が使用されます。 |
$dependency | yii\caching\Dependency|null |
キャッシュされた項目の依存関係。依存関係が変更された場合、get() 経由でフェッチされると、キャッシュ内の対応する値が無効になります。serializer が false の場合、このパラメータは無視されます。 |
戻り値 | array |
失敗したキーの配列 |
---|
public function multiSet($items, $duration = null, $dependency = null);
キーで識別される値をキャッシュに保存します。
キャッシュにそのようなキーがすでに含まれている場合、既存の値と有効期限はそれぞれ新しい値で置き換えられます。
public abstract boolean set ( $key, $value, $duration = null, $dependency = null ) | ||
$key | mixed |
キャッシュされる値を識別するキー。これは、単純な文字列またはキーを表す要素で構成される複雑なデータ構造にすることができます。 |
$value | mixed |
キャッシュされる値 |
$duration | integer|null |
キャッシュが期限切れになるまでのデフォルトの期間(秒単位)。設定しない場合、デフォルトの defaultDuration 値が使用されます。 |
$dependency | yii\caching\Dependency|null |
キャッシュされたアイテムの依存関係。依存関係が変更された場合、get() を介してフェッチされるときに、キャッシュ内の対応する値が無効になります。このパラメータは、serializer が false の場合は無視されます。 |
戻り値 | boolean |
値が正常にキャッシュに保存されたかどうか |
---|
public function set($key, $value, $duration = null, $dependency = null);
コメントするには、サインアップ または ログイン してください。