[CakePHP]キャッシュ関数を使う際の注意

概要

CakePHPにはcache関数という素敵な関数があります。
手軽にデータをキャッシュしておけるのが便利で、APIから取得したデータをキャッシュするのに使ったりしています*1

このキャッシュ関数の使い方と注意点を簡単にまとめておきます。

使い方

/*
$path string キャッシュを保存するパスを指定
$data mixed 保存するテキストを指定、nullの場合指定したキャッシュを探して読み込む
$expires mixed strtotimeに使える形式でキャッシュの保存期間を指定
$target string 保存場所を下記から指定
"cache" = CACHE . $path,
"public" = WWW_ROOT . $path;,
"tmp" = TMP . $path;
*/
cache($path, $data = null, $expires = '+1 day', $target = 'cache');

注意点

  1. core.phpはちゃんと設定しておこう

    core.phpでキャッシュが有効になってないと使えない。
    Configure::write(‘Cache.check’, true);
    のコメントアウトはちゃんとはずしておこう。
    Configure::write(‘Cache.disable’, true);
    がコメントアウトされているのも確認してね。

  2. 配列はそのままではキャッシュできない

    配列はそのままキャッシュできないのでserialize()でシリアル化して保存する。
    読み込むときはunserialize()で復元すればいいよね。

  3. 保存場所が存在しないとキャッシュできない

    指定した保存場所にディレクトリがないとキャッシュしてくれないので注意。
    勝手にディレクトリ作ってくれると思ってたから動的に$path与えていたのに、ダメなのね*2) …orz

Cake職人さんはみんな使ってます

この本を買ってからはホント開発効率が良くなりました。
「Modelのあのメソッドって何だっけ、ほら、動的にアソシエーションセットするヤツ」
って時に索引から一発で探せるところがもう最高!
どんな機能がある程度わかってくると、こういうリファレンス本が一番役に立ちます。

しかもリファレンス本は機能が必要最小限で効率よく整理されているから、使っているうちに書いてある事が自分のものにできちゃう。使えば使い込むほど本を開く頻度は少なくなり、上達したなぁと感慨にふけることができる。これもリファレンス本のいいところですよね。

もう一冊、Cake職人のバイブルと慕われるCakePHPガイドブックもありますが、テキストブック的な構成になってますし、1.1ベースということもあってリファレンスとしてはちょっと使えないんですよね。

ただ、CakePHPって何?どんな事ができるの?って方はリファレンス本よりも
[tmkm-amazon]4839924317[/tmkm-amazon]
を読むべきです。

MVCモデルの基本から、ヘルパーの使い方*3 、自作コンポネントやヘルパーの作り方、果てはセキュリティの話にいたるまで盛りだくさん。

この本を読めばModel,Controller,Viewのそれぞれの役割を理解し、何ができて何をすべきなのか理解できますし、そのことでリファレンス本を使いこなせるようにもなると。

ともかくCake職人なら必ず持っておきたい2冊です。もちろん僕も使ってます。 🙂

  1. APIは大体リクエストの時間制限があったりするし、ものによってはレスポンスが悪いものもあるのでキャッシュがかなり役立つんですよ []
  2. basics.phpのcache()いじればできそうだけど…いじらない方が無難だね []
  3. 特にAjaxヘルパーの項は1.2に移行した今でもものすごく役立ってます []
スポンサーリンク
336x280_1
336x280_1

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
336x280_1