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');//キャッシュの書き込む