出力キャッシュ、続き
結局戻り値を逆にしてメソッド名も変更した。
- 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(); } }
これでアクションキャッシュは考えなくていいかな…。