データキャッシュ
開発環境:CakePHP2.5.1
CakePHPにはデータキャッシュやビューキャッシュなどのキャッシュ機能がついています。
ビューキャッシュについては以下を参考にしてください。
http://cakephpクッキング.jp/archives/331
キャッシュの設定
まずはキャッシュの設定を行います。
設定場所は、app/Config/core.php。
Cache::configの設定内容がいくつかコメント内に記載されているので、ファイルキャッシュを行う場合は、下記のコードをコメント外に記載します。
<?php
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]
'mask' => 0664, //[optional]
));
?>
保存する場所や保存時間などはオプション設定で変更ができます。
SQLキャッシュ
モデルで呼び出すSQLをキャッシュするにはモデル内で次のようにします。
<?php
public function newest() {
$model = $this;
return Cache::remember('newest_posts', function() use ($model){
return $model->find('all', array(
'order' => 'Sample.created desc',
'limit' => 10
));
});
}
?>
これをコントローラー側呼び出すとSQLを発行せず、キャッシュからデータを出力してくれます。
キャッシュファイル名はCache::configのprefix+第一引数となります。
