mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 06:37:55 +08:00 
			
		
		
		
	
		
			
				
	
	
	
		
			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 などのオプションをサポートしています。主な違いとしては、ページキャッシュは アクションフィルタ として、フラグメントキャッシュは ウィジェット として実装されているということです。
フラグメントキャッシュ も、ダイナミックコンテント も、ページキャッシュと併用することができます。