|
|
|
@ -4,7 +4,7 @@
|
|
|
|
|
データキャッシュは PHP の変数をキャッシュに格納し、あとでキャッシュからそれらを読み込みます。 |
|
|
|
|
これは、[クエリキャッシュ](#query-caching) や [ページキャッシュ](caching-page.md) などの、より高度なキャッシュ機能の基礎でもあります。 |
|
|
|
|
|
|
|
|
|
以下はデータキャッシュの典型的な利用パターンを示したコードです。`$cache` は [キャッシュコンポーネント](#cache-components) を指します: |
|
|
|
|
以下のコードが、データキャッシュの典型的な利用パターンです。ここで、`$cache` は [キャッシュコンポーネント](#cache-components) を指しています。 |
|
|
|
|
|
|
|
|
|
```php |
|
|
|
|
// キャッシュから $data を取得しようと試みる |
|
|
|
@ -49,9 +49,9 @@ if ($data === false) {
|
|
|
|
|
], |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
上記のキャッシュコンポーネントには `Yii::$app->cache` という式でアクセスできます。 |
|
|
|
|
こうすると、上記のキャッシュコンポーネントに `Yii::$app->cache` という式でアクセスできるようになります。 |
|
|
|
|
|
|
|
|
|
すべてのキャッシュコンポーネントは同じ API をサポートしているので、アプリケーションの構成情報で設定しなおせば、キャッシュを使っているコードに変更を加えなくても、異なるキャッシュコンポーネントに入れ替えることができます。 |
|
|
|
|
すべてのキャッシュコンポーネントは同じ API をサポートしているので、アプリケーションの構成情報で設定しなおせば、キャッシュを使っているコードに変更を加えることなく、異なるキャッシュコンポーネントに入れ替えることができます。 |
|
|
|
|
例えば上記の構成を [[yii\caching\ApcCache|APC キャッシュ]] を使うように変更する場合は以下のようにします: |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -63,7 +63,7 @@ if ($data === false) {
|
|
|
|
|
], |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
> Tip: キャッシュコンポーネントは複数登録することができます。`cache` という名前のコンポーネントはキャッシュに依存したクラスによってデフォルトで使用されています (例えば [[yii\web\UrlManager]] など) 。 |
|
|
|
|
> Tip: キャッシュコンポーネントは複数登録することができます。`cache` という名前のコンポーネントが、キャッシュに依存する多数のクラスによってデフォルトで使用されます (例えば [[yii\web\UrlManager]] など) 。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### サポートされているキャッシュストレージ <span id="supported-cache-storage"></span> |
|
|
|
@ -78,7 +78,7 @@ Yii はさまざまなキャッシュストレージをサポートしていま
|
|
|
|
|
このコンポーネントの目的は、キャッシュが利用できることをチェックするためのコードを簡略化することです。 |
|
|
|
|
たとえば、開発中やサーバに実際のキャッシュサポートがない場合に、このキャッシュを使用するようにキャッシュコンポーネントを構成することができます。 |
|
|
|
|
そして、実際のキャッシュサポートが有効になったときに、対応するキャッシュコンポーネントに切替えて使用します。 |
|
|
|
|
どちらの場合も、`Yii::$app->cache` が null かも知れないと心配せずに、データを取得するために同じコード `Yii::$app->cache->get($key)` を使用できます。 |
|
|
|
|
どちらの場合も、`Yii::$app->cache` が `null` かも知れないと心配せずに、データを取得するために同じコード `Yii::$app->cache->get($key)` を使用できます。 |
|
|
|
|
* [[yii\caching\FileCache]]: キャッシュされたデータを保存するために通常のファイルを使用します。これはページコンテントなど大きなかたまりのデータに特に適しています。 |
|
|
|
|
* [[yii\caching\MemCache]]: PHP の [Memcache](http://php.net/manual/ja/book.memcache.php) と [Memcached](http://php.net/manual/ja/book.memcached.php) 拡張モジュールを使用します。 |
|
|
|
|
分散型のアプリケーションでキャッシュを扱うときには最速の一つとして考えることができます (例えば、複数台のサーバで、ロードバランサがある、などの場合) 。 |
|
|
|
|