cakephp1.1の時と同じように(ちょっと違うけど)キャッシュの設定をする。
- core.phpの設定
- controllerの設定
Cache.checkのコメントを削除
Configure::write('Cache.check', true);
プロパティに追加(※Cacheヘルパーを指定しないと動かない)
var $helpers = array('Html', 'Cache');
アクションに追加(※trueだと動かない)
$this->cacheAction = '+12 hours';
これでキャッシュが有効になる。
以下はCacheヘルパーを指定しないといけないということに気づくまでのメモ。
ソースを追ってみると、cake/libs/view/view.phpの665行目のisset($this->loaded['cache'])がfalseな為キャッシュが無効と判定されている。
if (is_a($this->loaded['cache'], 'CacheHelper')) {
$cache =& $this->loaded['cache'];
if ($cached === true) {
$cache->view = &$this;
}
$cache->base = $this->base;
$cache->here = $this->here;
$cache->helpers = $this->helpers;
$cache->action = $this->action;
$cache->controllerName = $this->name;
$cache->layout = $this->layout;
$cache->cacheAction = $this->cacheAction;
$cache->cache($___viewFn, $out, $cached);
}
}
loaded['cache']って何?って調べると読み込まれているヘルパーのことだったので、ヘルパーにCacheを指定すると無事キャッシュが有効なりました。
よかった、ぜったいバグだと思ってた。
こっちもどうぞ
コメント:0
トラックバック:0
- この記事のトラックバック URL
- http://www.sylvan-l.net/b/2008/01/04/cakephp12%e3%81%a7cache%e3%82%92%e4%bd%bf%e3%81%8a%e3%81%86%e3%81%a8%e3%81%99%e3%82%8b%e3%81%a8/trackback/
- トラックバックの送信元リスト
- cakephp1.2でcacheを使う - sylvan より