をエコーせずに出力を認識しませんので、私は(後のブートストラップに移動されます、私は推測する)自分の行動に次のコードを追加しました:Zend_Cache_Frontend_Pageは、私は、Zend_Cacheによる周りいじるしようとしています
$frontendOptions = array(
'lifetime' => 7200,
'debug_header' => true, // für das Debuggen
'default_options' => array(
'cache' => true,
'cache_with_get_variables' => true,
'cache_with_session_variables' => true,
'cache_with_cookie_variables' => true,
'cache_with_post_variables' => true,
)
);
$backendOptions = array(
'cache_dir' => '/tmp/'
);
$cache = Zend_Cache::factory('Page', 'File',
$frontendOptions, $backendOptions
);
echo "hej";
var_dump($cache->start('someid'));
Zendのキャッシュを生成し、ファイルはhejbool(false)
が含まれていますが、それ以外は私のページをキャッシュしません。 zendフレームワークに関するドイツの本によれば、の偽がある場合、のキャッシュがない場合は、となります。 trueは、キャッシュが見つかった場合にのみ返されます。
私はZend_Cache_Frontend_Page.php
の中で直接デバッグしましたが、start()メソッドの最下部まで下がりました。何も間違っていない(idが与えられていて)キャッシュが見つかりませんでした。これは完了しました(私は/tmp/
で見ることができます)が、必要なコンテンツはありません。
なぜ、Zend_View
の出力をキャッシュしないで、echo
を経由して直接出力するだけですか?
私はビューをレンダリングする明示的な関数を呼び出しませんが、これはもう必要ないようです(私のビューは常にコントローラとアクションに従って自動的にレンダリングされます)。私は標準的なXHTMLテンプレート(index.phtml
)とRSSテンプレート(index.rss.phtml
)の両方を試しました。
アイデア?他のコードの断片が必要ですか?
がありますあなたのブートストラップに 'Zend_Controller_Front :: getInstance() - > setParam( 'disableOutputBuffering'、true)'を追加するか、アプリケーションの設定ファイルに 'resources.frontController.params.disableOutputBuffering = true'を追加しましたか? – vstm
これは簡単だったと思った;)答えとして追加して、これを解決した印を付けて、あなたにいくつかのクレジットを与えることができる。 – Aufziehvogel