From 2f3f1d4be0d30b0ad450666e0d6ce714f9f0328c Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Tue, 19 Dec 2017 23:53:30 +0900 Subject: [PATCH] Use object cache for member point MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 오브젝트 캐시 사용시 회원 포인트를 캐시에 저장하도록 변경하여 불필요한 캐시 파일이 다량으로 생성되는 것을 방지함. --- modules/point/point.controller.php | 13 ++++++++++--- modules/point/point.model.php | 29 +++++++++++++++++++++++++---- 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/modules/point/point.controller.php b/modules/point/point.controller.php index cf229fc07..b15b1e511 100644 --- a/modules/point/point.controller.php +++ b/modules/point/point.controller.php @@ -683,11 +683,18 @@ class pointController extends point $oDB->commit(); // Cache Settings + $cache_key = sprintf('member:point:%d', $member_srl); $cache_path = sprintf('./files/member_extra_info/point/%s/', getNumberingPath($member_srl)); - FileHandler::makedir($cache_path); - $cache_filename = sprintf('%s%d.cache.txt', $cache_path, $member_srl); - FileHandler::writeFile($cache_filename, $point); + if (Rhymix\Framework\Cache::getDriverName() !== 'dummy') + { + Rhymix\Framework\Cache::set($cache_key, $point); + Rhymix\Framework\Storage::delete($cache_filename); + } + else + { + Rhymix\Framework\Storage::write($cache_filename, $point); + } getController('member')->_clearMemberCache($member_srl); unset(self::$_member_point_cache[$member_srl]); diff --git a/modules/point/point.model.php b/modules/point/point.model.php index b39f8a076..6a64d62cf 100644 --- a/modules/point/point.model.php +++ b/modules/point/point.model.php @@ -39,12 +39,23 @@ class pointModel extends point return self::$_member_point_cache[$member_srl]; } + // Get from object cache + $cache_key = sprintf('member:point:%d', $member_srl); + if (!$from_db) + { + $point = Rhymix\Framework\Cache::get($cache_key); + if ($point !== null) + { + return $point; + } + } + // Get from file cache $cache_path = sprintf(_XE_PATH_ . 'files/member_extra_info/point/%s', getNumberingPath($member_srl)); $cache_filename = sprintf('%s%d.cache.txt', $cache_path, $member_srl); if (!$from_db && file_exists($cache_filename)) { - return self::$_member_point_cache[$member_srl] = trim(FileHandler::readFile($cache_filename)); + return self::$_member_point_cache[$member_srl] = intval(trim(Rhymix\Framework\Storage::read($cache_filename))); } // Get from the DB @@ -54,14 +65,24 @@ class pointModel extends point if (isset($output->data->member_srl)) { $point = intval($output->data->point); - self::$_member_point_cache[$member_srl] = $point; - FileHandler::writeFile($cache_filename, $point); - return $point; } else { return 0; } + + // Save to cache + self::$_member_point_cache[$member_srl] = $point; + if (Rhymix\Framework\Cache::getDriverName() !== 'dummy') + { + Rhymix\Framework\Cache::set($cache_key, $point); + } + else + { + Rhymix\Framework\Storage::write($cache_filename, $point); + } + + return $point; } /**