この記事では、主にPHPファイルキャッシュクラスの使用法を紹介し、PHPファイルキャッシュクラスの定義、機能、具体的な使用スキルを例の形でより詳しく分析します。困っている友達は参考にしてください
この記事の例では、PHP ファイルキャッシュクラスの使用方法を説明します。参考のためにみんなで共有してください。詳細は以下の通りです
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
/** * シンプルなファイルキャッシュクラス * */ クラスXZCache{ //デフォルトのキャッシュ時間は 1 時間 var $cache_time = 3600; //デフォルトのキャッシュディレクトリ var $cache_dir = './cache'; パブリック関数 __construct($cache_dir=null, $cache_time=null){ $this->cache_dir = isset($cache_dir) ? $cache_dir : $this->cache_dir; $this->cache_time = isset($cache_time) ? $this->cache_time; } パブリック関数 saveCache ($key, $value){ if (is_dir($this->cache_dir)){ $cache_file = $this->cache_dir . md5($key); $timedif = @(time() - filemtime($cache_file)); if ($timedif >= $this->cache_time) { // キャッシュされたファイルが古すぎるため、新しく作成してください $serialized = シリアライズ($value); if ($f = @fopen($cache_file, 'w')) { fwrite ($f, $serialized, strlen($serialized)); fclose($f); } } $結果 = 1; }その他{ echo "エラー: ディレクトリが存在しません。"; $結果 = 0; } $result を返す; } /** * @配列を返す * 0 キャッシュなし * 1 キャッシュされました *2 延滞 */ パブリック関数 getCache ($key) { $cache_file = $this->cache_dir . md5($key); if (is_dir($this->cache_dir) && is_file($cache_file)) { $timedif = @(time() - filemtime($cache_file)); if ($timedif >= $this->cache_time) { $result['キャッシュ'] = 2; }その他{ // キャッシュされたファイルは十分に新しいので、キャッシュされた配列を返します $result['value'] = unserialize(file_get_contents($cache_file)); $result['キャッシュ'] = 1; } }その他{ echo "エラー: キャッシュがありません"; $result['キャッシュ'] = 0; } $result を返す; } } //授業終了 |
使用例は次のとおりです。
?
1 2 3 4 5 6 |
$cache = 新しい XZCache(); $key = 'グローバル'; $値 = $GLOBALS; $cache->saveCache($key, $value); $result = $cache->getCache($key); var_dump($result); |
この記事が皆様の PHP プログラミング設計に役立つことを願っています。