出力キャッシュ、続き

結局戻り値を逆にしてメソッド名も変更した。

  • Moony_Cache::outputStart($id, $lifetime = 3600): bool
    • 指定されたIDのキャッシュが存在する場合、キャッシュの内容を出力してfalseを返す
    • 指定されたIDのキャッシュが存在しない場合、出力キャッシュを開始してtrueを返す
  • Moony_Cache::outputEnd(): void
    • 出力キャッシュを終了、出力内容をキャッシュして出力処理を行う

すると、アクションクラスの出力内容をキャッシュすることが可能になる。

class Foo extends Moony_Action
    function execute()
    {
        // 出力キャッシュ開始
        $res = $this->cache->outputStart('id');
        if ($res === false) {
            // キャッシュが既に存在し、出力も行われたので処理終了
            return;
        }

        // 処理

        // テンプレート出力
        $this->render();

        // 出力キャッシュ終了、キャッシュ/出力処理
        $this->cache->outputEnd();
    }
}

これでアクションキャッシュは考えなくていいかな…。

やり直し→http://d.hatena.ne.jp/hiro_y/20061208/1165587760