CakePHP Note (v1.3) > ライブラリ > Cache
Cache
キャッシュを扱うためのライブラリ。
キャッシュのエンジンといしてFile,APC,Xcache,Memcacheが用意されています。他のエンジンは自作する事も出来るようです。
core.phpの下の方に設定サンプルが記載されています。
主なメソッド
- config($name = null, $settings = array())
- read($key, $config = null)
- write($key, $value, $config = null)
config($name = null, $settings = array())
キャッシュを設定します。複数の設定を行なう事が出来ます。キャッシュの読み書きの際には$nameを使用できます。
パラメータ
$settingsで指定できるパラメータはエンジンによって異なりますが、次のようなパラメータがあります。
| パラメータ | 初期値 | 
|---|---|
| engine | 初期値なし | 
| prefix | 'cake_' | 
| duration | 3600(秒) | 
| probability | 100 | 
read/write
キャッシュの書き込みおよび読み込みを行ないます。任意で実行時にどの設定を利用するか$configで指定できます。
デフォルトでは次のような設定になっています。
core.php
Cache::config('default', array('engine' => 'File'));
APCでキャッシュを行なう
APCが有効なサーバーではAPCを使ってキャッシュを行なう事が出来ます。
デフォルトのキャッシュ設定に加え、外部からRSSを取得する際は24時間キャッシュする、という例です。
設定(core.php)
 Cache::config('rss', array(
    'engine' => 'Apc', //エンジンにAPCを指定
    'duration'=> 86400, //有効期間24時間
ロジック
$rssUrl = 'URL of RSS'; //RSSのURL
$contents = Cache::read($rssUrl,'rss');//キャッシュの読み込み
if ($contents!== false) {
    return $contents;//キャッシュが見つかった
}
//キャッシュが無かった場合
$input = file_get_contents($rssUrl);
$xml = new Xml($input);
$xmlAsArray = Set::reverse($xml);
Cache::write($rssUrl,$xmlAsArray,'rss');//キャッシュの書き込む