0

Zend Framework でレイアウト コンテンツのキャッシュをどのように実装しますか?

layout.phtmlI do:で、$this->layout->contentこの変数の内容をキャッシュしたい。レイアウトの他のウィジェットはリアルタイムです (または他の方法でキャッシュされます)。

最善の策は次のとおりです。

  • 静的キャッシュ (最速)
  • ページキャッシュ

私のページには既に一意のページ ID ( canonical) があるため、ページ キャッシュ タグとして使用できます。

__getレイアウトのプロパティをオーバーロードする必要があるようです。

SOのレイアウトのようなことをしようとしています(ユーザーパネルが一番上にあり、残りはすべてキャッシュされています)。
サイトは JavaScript なしで動作するはずだと思います。

4

1 に答える 1

0

weerophinney が説明するFront Controller Cache プラグインを参照してください。問題はおそらく、キャッシュ ヒットでスクリプトを停止させたくないことです。exit;したがって、スクリプトを使用しない$request->setDispatched(true)で、プラグイン内で作業できます。(キャッシュ可能なものごとに新しいリクエストオブジェクトが必要です)。
別のアプローチとして、を使用せず、プラグインでディスパッチをリセットすることもできdispatchLoopStartupますpreDispatch
実際には、他のすべてのものをどのようにロードするかによって異なります (キャッシュされているかどうかに関係なく)。(たとえば、ActionStack は新しいリクエストをディスパッチャにプッシュします)。

于 2010-11-08T08:55:31.053 に答える