ページのキャッシュとは、ページ全体のコンテンツをキャッシュすることを指します。ページのキャッシュはさまざまな場所で発生する可能性があります。 たとえば、適切なページ ヘッダーを選択することにより、クライアントのブラウザは限られた時間だけ Web ページをキャッシュできます。 Web アプリケーション自体も、Web ページのコンテンツをキャッシュに保存できます。 このセクションでは、後者のアプローチに焦点を当てます。
ページ キャッシュは、フラグメント キャッシュの特殊なケースとして考えることができます。 Web コンテンツはレイアウトを適用して生成されることが多いため、レイアウト内で beginCache() や endCache() を呼び出すだけでは正しく動作しません。 これは、ページ コンテンツが生成された後にレイアウトが CController::render() メソッドに読み込まれるためです。
ページ全体をキャッシュしたい場合は、Web コンテンツを生成するアクションの実行をスキップする必要があります。このタスクを実行するには、COutputCache をアクション フィルターとして使用します。以下のコードは、キャッシュ フィルターを構成する方法を示しています。
public function filters() { return array( array( 'COutputCache', 'duration'=>100, 'varyByParam'=>array('id'), ), ); }
上記のフィルター構成により、コントローラー内のすべてのアクションにフィルターが適用されます。 プラグイン演算子を使用して、アクションを 1 つまたはいくつかのアクションに制限する場合があります。 詳細については、「フィルター」を参照してください。
ヒント: COutputCache は CFilterWidget から継承しているため、フィルターとして使用できます。これは、ツール (ウィジェット) でありフィルターであることを意味します。実際、ウィジェットはフィルターと非常によく似た働きをします。ツール ウィジェット (フィルター) は、アクション内のコンテンツが実行される前に実行され、実行後に終了します。
上記は Yii Framework 公式ガイド シリーズ 31 - キャッシュ: ページ キャッシュの内容 詳細については、PHP 中国語 Web サイト (www.php.cn) を参照してください。 !