Zend_Cache

0pt

Frontend(キャッシュ対象)は指定のクラスやファイルやページや出力などが指定できる。
Backend(キャッシュ保管場所)はファイルやmemcachedやDBなどが使える。

Zend_Cache_Frontend_Page

ページまるまるキャッシュする。なかなか便利。

導入方法
http://d.hatena.ne.jp/noopable/20090326/1238024710

これ、$cahce->start()するだけっていうのがどな仕組みで動いてるのか不思議だったけど、ソース見て一目瞭然。ob_startにコールバック指定できて、flushしたときに同時にキャッシュ保存してるだけだった。

Controller内で使う場合はFrontで'disableOutputBuffering'をtrueにしなければならない。でないと空のデータがキャッシュされてしまう。

バッファリングにob_startを使ってるだろう。ob_startはネストできないのでどちらか切らなければならない。バッファリングをoffにするとコントローラー内でechoしたものが先にでてくる。他に弊害あるかな?

// http://www.zfforums.com/zend-framework-components-13/core-infrastructure-19/help-zend_cache_frontend_page-1180.html

$front->setParam('disableOutputBuffering', true);


Zend_Configをキャッシュするサンプル

require_once 'Zend/Config/Ini.php';
require_once 'Zend/Cache.php';

$file = 'config.ini';
$frontendOptions = array(
   'lifetime' => 7200, // キャッシュの有効期限を 2 時間とします
   'automatic_serialization' => true,
    'master_file' => $file
);

$backendOptions = array(
    'cache_dir' => './tmp/' // キャッシュファイルを書き込むディレクトリ
);

// Zend_Cache_Core オブジェクトを取得します
$cache = Zend_Cache::factory('File', 'File', $frontendOptions, $backendOptions);

if (!$config = $cache->load('config')){
    //$options['nestSeparator'] = ':';
    $config = new Zend_Config_Ini($file, null, array('allowModifications' => true));
    $cache->save($config, 'config');
}else{
    echo "use cache\n";
}

var_dump($config->toArray());

「Zend_Cache」について友人に書いてもらう。

あなたにとって「Zend_Cache」とは?

ログインするとワンクリックでキーワードを投稿できます

ログインする 新規登録する

関連したキーワードを持つお気に入り

他の人の「Zend_Cache」を見る