0 フォロワー

インターフェース yii\caching\CacheInterface

拡張ArrayAccess
実装者yii\caching\ApcCacheyii\caching\ArrayCacheyii\caching\Cacheyii\caching\DbCacheyii\caching\DummyCacheyii\caching\FileCacheyii\caching\MemCacheyii\caching\WinCacheyii\caching\XCacheyii\caching\ZendDataCache
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/caching/CacheInterface.php

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

メソッド詳細

継承されたメソッドを非表示

add() public abstract method

キャッシュにこのキーが含まれていない場合、キーで識別される値をキャッシュに保存します。

キャッシュに既にキーが含まれている場合、何も行われません。

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

            
buildKey() public abstract method

指定されたキーから正規化されたキャッシュキーを構築します。

指定されたキーが英数字のみで構成され、32文字以内の文字列である場合、キーはkeyPrefixを付与されて返されます。それ以外の場合は、指定されたキーをシリアライズし、MD5ハッシュを適用し、keyPrefixを付与することで正規化されたキーが生成されます。

public abstract string buildKey ( $key )
$key mixed

正規化するキー

戻り値 string

生成されたキャッシュキー

                public function buildKey($key);

            
delete() public abstract method

指定されたキーを持つ値をキャッシュから削除します。

public abstract boolean delete ( $key )
$key mixed

キャッシュから削除する値を特定するキー。これは単純な文字列でも、キーを表す要素で構成される複雑なデータ構造でもかまいません。

戻り値 boolean

削除中にエラーが発生しなかった場合

                public function delete($key);

            
exists() public abstract method

指定されたキーがキャッシュに存在するかどうかを確認します。

データが大きい場合、キャッシュから値を取得するよりも高速になる可能性があります。キャッシュがこの機能をネイティブでサポートしていない場合、このメソッドはそれをシミュレートしようとしますが、取得するよりもパフォーマンスが向上することはありません。このメソッドは、キャッシュされたデータに関連付けられた依存関係(もしあれば)が変更されたかどうかをチェックしないことに注意してください。したがって、get() を呼び出すと false が返される可能性がありますが、exists は true を返します。

public abstract boolean exists ( $key )
$key mixed

キャッシュされた値を特定するキー。これは単純な文字列でも、キーを表す要素で構成される複雑なデータ構造でもかまいません。

戻り値 boolean

キャッシュに値が存在する場合は true、キャッシュに値が存在しないか期限切れの場合は false。

                public function exists($key);

            
flush() public abstract method

キャッシュからすべての値を削除します。

キャッシュが複数のアプリケーション間で共有されている場合は、この操作の実行に注意してください。

public abstract boolean flush ( )
戻り値 boolean

フラッシュ操作が成功したかどうか。

                public function flush();

            
get() public abstract method

指定されたキーでキャッシュから値を取得します。

public abstract mixed get ( $key )
$key mixed

キャッシュされた値を特定するキー。これは単純な文字列でも、キーを表す要素で構成される複雑なデータ構造でもかまいません。

戻り値 mixed

キャッシュに格納されている値。値がキャッシュにない場合、期限切れの場合、またはキャッシュされたデータに関連付けられた依存関係が変更された場合は false。

                public function get($key);

            
getOrSet() public abstract method

このメソッドは、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 が false を返した場合、値はキャッシュされません。

$duration integer|null

キャッシュが期限切れになるまでのデフォルトの期間(秒単位)。設定しない場合、defaultDuration 値が使用されます。

$dependency yii\caching\Dependency|null

キャッシュされた項目の依存関係。依存関係が変更された場合、get() 経由でフェッチされると、キャッシュ内の対応する値が無効になります。serializerfalse の場合、このパラメータは無視されます。

戻り値 mixed

$callable の実行結果

                public function getOrSet($key, $callable, $duration = null, $dependency = null);

            
multiAdd() public abstract method

キャッシュに複数の項目を保存します。各項目には、キーで識別される値が含まれています。

キャッシュにそのようなキーがすでに含まれている場合、既存の値と有効期限が保持されます。

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

            
multiGet() public abstract method

指定されたキーでキャッシュから複数の値を取得します。

一部のキャッシュ(memcache、apcなど)では、複数のキャッシュされた値を同時に取得できるため、パフォーマンスが向上する可能性があります。キャッシュがこの機能をネイティブでサポートしていない場合、このメソッドはそれをシミュレートしようとします。

public abstract array multiGet ( $keys )
$keys string[]

キャッシュされた値を特定する文字列キーのリスト

戻り値 array

指定されたキーに対応するキャッシュされた値のリスト。配列は (キー、値) ペアの形式で返されます。値がキャッシュされていないか期限切れの場合、対応する配列の値は false になります。

                public function multiGet($keys);

            
multiSet() public abstract method

キャッシュに複数の項目を保存します。各項目には、キーで識別される値が含まれています。

キャッシュにそのようなキーがすでに含まれている場合、既存の値と有効期限はそれぞれ新しい値で置き換えられます。

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

            
set() public abstract method

キーで識別される値をキャッシュに保存します。

キャッシュにそのようなキーがすでに含まれている場合、既存の値と有効期限はそれぞれ新しい値で置き換えられます。

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