めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

CakePHP 1.2のキャッシュ機構

CakePHP 1.2でキャッシュを有効にする

  • 出力の結果についてのキャッシュは、別の設定
  • ここではCakePHP 1.2が備えるキャッシュ機構を有効にするか?ということだけらしい
<?php
// core.phpの下記の箇所をコメントアウト
//Configure::write('Cache.disable', true);
?>

何がキャッシュされているのか?

  • debug は2に設定している状態で確認
  • DESCRIBEが実行されない
    • DESCRIBEは、テーブル状態を知るためのSQLらしい
    • キャッシュされた中身(ファイルベースのキャッシュにしていたので、ファイルを直接)を見ると、確かにそれっぽい
  • debug を0にしてみたが、キャッシュファイルに変化がない
  • キャッシュを有効にしたから、といっても
    • CakePHPが何かしてくれる訳じゃない
    • 活用するためには、Controllerか、Modelなどで対応するしかない
    • Viewのキャッシュは色々とある(Helperも用意されている)

Controllerでキャッシュをする

  • キー(key)は独自のものを考える
    • キーがモデル名だと、CakePHPが持っている機構とで行われているのと、かぶる気がする
<?php
	function view($id){
		if(!Cache::read('testpost')){
			debug('NO Cache');
			$this->Post->id = $id;
			$post = $this->Post->read();
			if(Cache::write('testpost', $post)){
				debug('write');
			}else{
				debug('no write');
			}
		}else{
			debug('cache');
			$post = Cache::read('testpose');
		}
		$this->set('post', $post);
	}

Modelでキャッシュする

  • CakePHPでモデルキャッシュを利用する - blog.katsuma.tv
  • たぶん、きちんとキャッシュをするのなら、これが一番いいのかも
  • Controllerで、キャッシュをあれこれ制御する、というのは、Controllerがすることとは外れていそう(Modelじゃなくて、ビヘイビアで制御、というのが一番シンプルかも)

クエリーキャッシュ

  • CakePHPには、クエリーキャッシュというのがあるらしい
  • これが一番したいような...