Zend Framework: Documentation Zend_Cache_Frontend_Page
Zend_Cache_Frontend_Pageはとても便利だと思います。実際に使ってみたところ少しハマってしまいましたので参考になればと思います。
・知らぬ間にクッキーがあった。
→make_id_with_cookie_variablesをtrueに。
GoogleAnalyticsなどで意図しないCookieが埋め込まれている場合がありますので、その場合はCookieがあってもキャッシュされるようにしなくてはいけません。
・start()後にob_gzhandlerを使用している。
キャッシュ開始($cache->start())後にob_gzhandlerがあると、復元できない状態でキャッシュされてしまうようです。ob_gzhandlerを使いたい場合は、キャッシュをスタートさせる前にob_gzhandlerを宣言しましょう。
他にもハマリどころはありますでしょうか?
私もまだまだ使い始めですので、また何かあればUPしていこうと思います。
一応ソースを載せておきます。といっても公式そのままですが。
[php]
// [...] キャッシュセクションの前には、あまり多くの行を書かないようにしましょう。
// [...] 例えば、処理速度を最適化するためには "require_once" や "Zend_Loader::loadClass"
// [...] をキャッシュセクションの後におくべきです。
require_once 'Zend/Cache.php';
$frontendOptions = array(
'lifetime' => 7200,
‘debug_header’ => true, // デバッグします
‘regexps’ => array(
‘^/$’ => array(‘cache’ => true), // IndexController 全体をキャッシュします
‘^/index/’ => array(‘cache’ => true), // IndexController 全体をキャッシュします
‘^/article/’ => array(‘cache’ => false), // ArticleController はキャッシュしません
‘^/article/view/’ => array( // ……が、ArticleController の “view” アクションは
‘cache’ => true, // キャッシュします。また、たとえ $_POST に何らかの
‘cache_with_post_variables’ => true, // 変数が含まれていてもキャッシュを行います
‘make_id_with_post_variables’ => true, // (しかし、そのキャッシュは $_POST 配列に依存します)。
)
)
);
$backendOptions = array(
‘cache_dir’ => ‘/tmp/’
);
// Zend_Cache_Frontend_Page オブジェクトを取得します
$cache = Zend_Cache::factory(‘Page’, ‘File’, $frontendOptions, $backendOptions);
$cache->start();
// キャッシュにヒットした場合はその結果がブラウザに送信され、スクリプトの処理はここで停止します。
// [...] 起動ファイルの終点 (これらの行は、キャッシュにヒットした場合は実行されません)
[/php]
関連する記事:
- XCacheで変数をキャッシュ
- clearstatcache()のはなし
- Zend_Db_Table_AbstractでZend_Cacheを利用して負荷軽減
- WordPress高速化
- セッション使ってると戻るボタンで戻った時にフォームの内容が消えてしまう問題
Powered by MightyAdsense
最近のコメント