処理の重さを気にしてプログラムをしていては、キリがないので
ひたすら強引に作りまくっていた。
でも・・・
アソシエーション・・・
超重い。
どんどんどんどん、重くなる。
そこで、データをキャッシュして表示するようにする。
下準備
・core.php の 89 行目のコメントを外す
・180行目らへんのキャッシュを保存しておく場所を決める
//89行目らへん。コメントアウトされているので外す
Configure::write('Cache.check', true);
・
・
・
//180行目らへん。コメントアウトされているので外す
Cache::config('default', array(
'engine' => 'File', //[required]
'duration'=> 3600, //[optional]
'probability'=> 100, //[optional]
'path' => CACHE, //[optional] use system tmp directory - remember to use absolute path
'prefix' => 'cake_', //[optional] prefix every cache file with this string
'lock' => false, //[optional] use file locking
'serialize' => true,// [optional]
));
モデル、コントローラー、ビューのどこでも使用OK!
if(Cache::read('res')){
//pr('すでにキャッシュがあるのでそれを使う');
$res = Cache::read('res');
} else {
//pr('キャッシュを作成します、使います');
$res = 'ここでfindとかの処理してデータを作成';
Cache::set(array('duration' => '+1 hours'));//1時間有効
Cache::write('res', $res);//データを書き込み
}
pr($res);
ようは、 res っていう名前のキャッシュがあれば、それを読み込んで使う。
なかったら $resを作って保存させ、それを使う。
ってこと。
キャッシュを使用するとサーバーの負荷が少なくなり、音速で動くようになるんだが、
逆にキャッシュに残るのでプログラムのバグの原因になる。
多様するのではなく、ここぞという場面で使うのがベストか。
ちなみに、cakephpのビューキャッシュはバグりまくりなので使わない方がいい。
(個人的な意見。)



