CodeIgniterデータベースに自動的に期限が切れる処理をキャッシュさせる方法

1097 ワード

CodeIgniterフレームは非常に小さいPHPフレームです。CIはデータベースファイルのキャッシュを持参していますが、公式の言い方によると、キャッシュ設定後はいつまでも期限が切れません。呼び出し方法が自動的に削除されない限り、。Cache files DO NOT expire.Any queries that have been cached will remain cached until You delete them.感じが弱すぎて、とても不便です。dbクラスを変更して、キャッシュを開く時に有効期限を設定してください。有効期限が切れると自動的にキャッシュが無効になります。1:CI database/DB_dirver.php中1021行cacheuon関数は
function cache_on($expire_time=0) //add parm expire time -       
{
$this->cache_expire_time = $expire_time; //add by kenvin
$this->cache_on = TRUE;
return TRUE;
}
に置き換えられます。2:CI database/DB_cache.php中90行read関数if(FALSE===($cachedata=read_)file($filepath))の一行の前に
//       // cache_expire_time
if ( !file_exists($filepath) ) {
return false;
}
if ( $this->db->cache_expire_time > 0 && filemtime($filepath) db->cache_expire_time) {
return false;
}
を加えると、キャッシュを開く必要があるところで、以前の$this→db→cacheuon()SECは
$this→db→cache_on($SEC); 
ドルのキャッシュ期間を秒単位に変更します。例えば$this→db→cacheuon(60)キャッシュが60秒後に切れます。