PHPのキャッシュクラスについてはインターネット上にたくさんの情報がありますが、ニーズに合わせた機能を備えながらも非常にシンプルなクラスは私が見た中でおそらくこのクラスでしょう。早速、コードを見てみましょう。
使用説明:
1. インスタンス化
$cache = new Cache();
2. キャッシュ時間とキャッシュディレクトリを設定します
$cache = new Cache(60, '/any_other_path/');
最初のパラメータはキャッシュ秒数、2 番目のパラメータはキャッシュ パスで、必要に応じて設定できます。
デフォルトでは、キャッシュ時間は 3600 秒で、キャッシュ ディレクトリは、cache/
3. 読み取りキャッシュ
$value = $cache->get('data_key');
4. キャッシュを書き込む
$value = $cache->put('data_key', 'data_value');
完全な例:
$cache = new Cache();
//キャッシュからキー値 $key のデータを読み取ります
$values = $cache->get($key); / キャッシュされたデータがない場合
if ($values == false) {
//ここにコードを挿入...
//キー値のデータを書き込む $key
$cache->put($key, $values);
} else {
//ここにコードを挿入します...
}
class Cache {
private $cache_path;//キャッシュのパス
private $cache_expire;//キャッシュが期限切れになる秒数
//キャッシュコンストラクター、オプションで期限切れ時間とキャッシュパス
public function Cache($exp_time=3600,$path="cache/"){
$this->cache_expire=$exp_time;
}
/ / キャッシュのファイル名を返します
private function fileName($key){
return $this->cache_path.md5($key)
}
// 指定されたデータ、$key== を使用して新しいキャッシュ ファイルを作成しますキャッシュの名前、データを保存する情報/値
public function put($key, $data){
$values = Serialize($data);
$filename = $this->fileName($ key);
$file = fopen($filename, 'w');
if ($file){//ファイル
fwrite($file, $values);
else return false ;
//指定されたキーのキャッシュを返します
public function get($key){
$filename = $this->fileName($key)
if (!file_exists($filename); || !is_readable ($filename)){// キャッシュを読み取れません
return false
if ( time() < (filemtime($filename) + $this->cache_expire) ) {//有効期限が切れていないキーのキャッシュ
$file = fopen($filename, "r");// データ ファイルを読み取ります
if ($file){// ファイルを開くことができます
$data = fread($file, filesize( $filename)) ;
fclose($file);//値を返します
}
else return false;// 有効期限が切れたので新しいものを作成する必要があります
}
}
?
この記事の出典: http://www.mangguo.org/
http://www.bkjia.com/PHPjc/363841.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/363841.html
技術記事