|
|
|
ページ・キャッシュ
|
|
|
|
==================
|
|
|
|
|
|
|
|
ページ・キャッシュはサーバ・サイドでページ全体のコンテントをキャッシュするものです。
|
|
|
|
後で再び同じページがリクエストされた場合に、その内容を一から生成するのではなく、キャッシュから提供します。
|
|
|
|
|
|
|
|
ページ・キャッシュは [[yii\filters\PageCache]] という [アクション・フィルタ](structure-filters.md) によってサポートされています。これは、コントローラ・クラスで以下のように使用することができます:
|
|
|
|
|
|
|
|
```php
|
|
|
|
public function behaviors()
|
|
|
|
{
|
|
|
|
return [
|
|
|
|
[
|
|
|
|
'class' => 'yii\filters\PageCache',
|
|
|
|
'only' => ['index'],
|
|
|
|
'duration' => 60,
|
|
|
|
'variations' => [
|
|
|
|
\Yii::$app->language,
|
|
|
|
],
|
|
|
|
'dependency' => [
|
|
|
|
'class' => 'yii\caching\DbDependency',
|
|
|
|
'sql' => 'SELECT COUNT(*) FROM post',
|
|
|
|
],
|
|
|
|
],
|
|
|
|
];
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
上記のコードは、ページ・キャッシュが `index` アクションのみで使用されることを示しています。
|
|
|
|
ページのコンテントは最大 60 秒間キャッシュされ、現在のアプリケーションの言語によるバリエーションを持ち、
|
|
|
|
投稿の総数に変化があった場合キャッシュされたページが無効になります。
|
|
|
|
|
|
|
|
御覧のように、ページ・キャッシュは [フラグメント・キャッシュ](caching-fragment.md) ととてもよく似ています。
|
|
|
|
それらは両方とも `duration`、`dependencies`、`variations`、そして `enabled` などのオプションをサポートしています。
|
|
|
|
主な違いとしては、ページ・キャッシュは [アクション・フィルタ](structure-filters.md) として、フラグメント・キャッシュは [ウィジェット](structure-widgets.md) として実装されているということです。
|
|
|
|
|
|
|
|
[フラグメント・キャッシュ](caching-fragment.md) も、[ダイナミック・コンテント](caching-fragment.md#dynamic-content) も、ページ・キャッシュと併用することができます。
|