You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.2 KiB
2.2 KiB
ページキャッシュ
ページキャッシュはサーバサイドでページ全体のコンテントをキャッシュすることを言います。あとで、同じページに再度リクエストがあった場合、その内容を一から再び生成させるのではなく、キャッシュから提供するようにします。
ページキャッシュは yii\filters\PageCache という アクションフィルタ によってサポートされています。これは、コントローラクラスで以下のように使用することができます:
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 秒間キャッシュされ、現在のアプリケーションの言語によるバリエーションを持ち、投稿の総数に変化があった場合キャッシュされたページが無効になる、ということを示しています。
見てわかるように、ページキャッシュは フラグメントキャッシュ ととてもよく似ています。それらは両方とも duration
、dependencies
、variations
、そして enabled
などのオプションをサポートしています。主な違いとしては、ページキャッシュは アクションフィルタ として、フラグメントキャッシュは ウィジェット として実装されているということです。
また、ページキャッシュと一緒に フラグメントキャッシュ だけでなく ダイナミックコンテント も使用することができます。