ホーム > その他 | Web開発関連

cakephp1.2でcacheを使う


cakephp1.1の時と同じように(ちょっと違うけど)キャッシュの設定をする。

  1. core.phpの設定
  2. Cache.checkのコメントを削除

    Configure::write('Cache.check', true);
  3. controllerの設定
  4. プロパティに追加(※Cacheヘルパーを指定しないと動かない)

    var $helpers = array('Html', 'Cache');

    アクションに追加(※trueだと動かない)

    $this->cacheAction = '+12 hours';

これでキャッシュが有効になる。


以下はCacheヘルパーを指定しないといけないということに気づくまでのメモ。

ソースを追ってみると、cake/libs/view/view.phpの665行目のisset($this->loaded['cache'])がfalseな為キャッシュが無効と判定されている。

if (isset($this->loaded['cache']) && (($this->cacheAction != false)) && (Configure::read('Cache.check') === true)) {
            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 より

ホーム > その他 | Web開発関連 > cakephp1.2でcacheを使う

ぴくちゃー
ブログパーツ

ページの上部に戻る