@@ -22,7 +22,7 @@ discard block |
||
| 22 | 22 | * You should have received a copy of the GNU General Public License |
| 23 | 23 | * along with this program; if not, write to the Free Software |
| 24 | 24 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
| 25 | - */ |
|
| 25 | + */ |
|
| 26 | 26 | |
| 27 | 27 | class FileCache implements CacheInterface{ |
| 28 | 28 | |
@@ -44,15 +44,15 @@ discard block |
||
| 44 | 44 | show_error('The cache for file system is not available. Check the cache directory if is exists or is writable.'); |
| 45 | 45 | } |
| 46 | 46 | /** |
| 47 | - * instance of the Log class |
|
| 48 | - */ |
|
| 49 | - if(is_object($logger)){ |
|
| 50 | - $this->logger = $logger; |
|
| 51 | - } |
|
| 52 | - else{ |
|
| 53 | - $this->logger =& class_loader('Log', 'classes'); |
|
| 54 | - $this->logger->setLogger('Library::FileCache'); |
|
| 55 | - } |
|
| 47 | + * instance of the Log class |
|
| 48 | + */ |
|
| 49 | + if(is_object($logger)){ |
|
| 50 | + $this->logger = $logger; |
|
| 51 | + } |
|
| 52 | + else{ |
|
| 53 | + $this->logger =& class_loader('Log', 'classes'); |
|
| 54 | + $this->logger->setLogger('Library::FileCache'); |
|
| 55 | + } |
|
| 56 | 56 | |
| 57 | 57 | //if Zlib extension is not loaded set compressCacheData to false |
| 58 | 58 | if(! extension_loaded('zlib')){ |
@@ -80,26 +80,26 @@ discard block |
||
| 80 | 80 | return false; |
| 81 | 81 | } |
| 82 | 82 | // Getting a shared lock |
| 83 | - flock($handle, LOCK_SH); |
|
| 84 | - $data = file_get_contents($filePath); |
|
| 85 | - fclose($handle); |
|
| 86 | - $data = @unserialize($this->compressCacheData ? gzinflate($data) : $data); |
|
| 87 | - if (! $data) { |
|
| 88 | - $this->logger->error('Can not unserialize the cache data for the key ['. $key .'], return false'); |
|
| 89 | - // If unserializing somehow didn't work out, we'll delete the file |
|
| 90 | - unlink($filePath); |
|
| 91 | - return false; |
|
| 92 | - } |
|
| 93 | - if (time() > $data['expire']) { |
|
| 94 | - $this->logger->info('The cache data for the key ['. $key .'] already expired delete the cache file [' .$filePath. ']'); |
|
| 95 | - // Unlinking when the file was expired |
|
| 96 | - unlink($filePath); |
|
| 97 | - return false; |
|
| 98 | - } |
|
| 99 | - else{ |
|
| 100 | - $this->logger->info('The cache not yet expire, now return the cache data for key ['. $key .'], the cache will expire at [' . date('Y-m-d H:i:s', $data['expire']) . ']'); |
|
| 101 | - return $data['data']; |
|
| 102 | - } |
|
| 83 | + flock($handle, LOCK_SH); |
|
| 84 | + $data = file_get_contents($filePath); |
|
| 85 | + fclose($handle); |
|
| 86 | + $data = @unserialize($this->compressCacheData ? gzinflate($data) : $data); |
|
| 87 | + if (! $data) { |
|
| 88 | + $this->logger->error('Can not unserialize the cache data for the key ['. $key .'], return false'); |
|
| 89 | + // If unserializing somehow didn't work out, we'll delete the file |
|
| 90 | + unlink($filePath); |
|
| 91 | + return false; |
|
| 92 | + } |
|
| 93 | + if (time() > $data['expire']) { |
|
| 94 | + $this->logger->info('The cache data for the key ['. $key .'] already expired delete the cache file [' .$filePath. ']'); |
|
| 95 | + // Unlinking when the file was expired |
|
| 96 | + unlink($filePath); |
|
| 97 | + return false; |
|
| 98 | + } |
|
| 99 | + else{ |
|
| 100 | + $this->logger->info('The cache not yet expire, now return the cache data for key ['. $key .'], the cache will expire at [' . date('Y-m-d H:i:s', $data['expire']) . ']'); |
|
| 101 | + return $data['data']; |
|
| 102 | + } |
|
| 103 | 103 | } |
| 104 | 104 | |
| 105 | 105 | |
@@ -121,25 +121,25 @@ discard block |
||
| 121 | 121 | } |
| 122 | 122 | flock($handle, LOCK_EX); // exclusive lock, will get released when the file is closed |
| 123 | 123 | //Serializing along with the TTL |
| 124 | - $cacheData = serialize(array( |
|
| 124 | + $cacheData = serialize(array( |
|
| 125 | 125 | 'mtime' => time(), |
| 126 | 126 | 'expire' => $expire, |
| 127 | 127 | 'data' => $data, |
| 128 | 128 | 'ttl' => $ttl |
| 129 | 129 | ) |
| 130 | 130 | ); |
| 131 | - $result = fwrite($handle, $this->compressCacheData ? gzdeflate($cacheData, 9) : $cacheData); |
|
| 132 | - if(! $result){ |
|
| 133 | - $this->logger->error('Can not write cache data into file [' .$filePath. '] for the key ['. $key .'], return false'); |
|
| 134 | - fclose($handle); |
|
| 135 | - return false; |
|
| 136 | - } |
|
| 137 | - else{ |
|
| 138 | - $this->logger->info('Cache data saved into file [' .$filePath. '] for the key ['. $key .']'); |
|
| 139 | - fclose($handle); |
|
| 131 | + $result = fwrite($handle, $this->compressCacheData ? gzdeflate($cacheData, 9) : $cacheData); |
|
| 132 | + if(! $result){ |
|
| 133 | + $this->logger->error('Can not write cache data into file [' .$filePath. '] for the key ['. $key .'], return false'); |
|
| 134 | + fclose($handle); |
|
| 135 | + return false; |
|
| 136 | + } |
|
| 137 | + else{ |
|
| 138 | + $this->logger->info('Cache data saved into file [' .$filePath. '] for the key ['. $key .']'); |
|
| 139 | + fclose($handle); |
|
| 140 | 140 | chmod($filePath, 0640); |
| 141 | 141 | return true; |
| 142 | - } |
|
| 142 | + } |
|
| 143 | 143 | } |
| 144 | 144 | |
| 145 | 145 | |
@@ -159,7 +159,7 @@ discard block |
||
| 159 | 159 | } |
| 160 | 160 | else{ |
| 161 | 161 | $this->logger->info('Found cache file [' .$filePath. '] remove it'); |
| 162 | - unlink($filePath); |
|
| 162 | + unlink($filePath); |
|
| 163 | 163 | return true; |
| 164 | 164 | } |
| 165 | 165 | } |
@@ -182,7 +182,7 @@ discard block |
||
| 182 | 182 | } |
| 183 | 183 | else{ |
| 184 | 184 | $this->logger->info('Found cache file [' .$filePath. '] check the validity'); |
| 185 | - $data = file_get_contents($filePath); |
|
| 185 | + $data = file_get_contents($filePath); |
|
| 186 | 186 | $data = @unserialize($this->compressCacheData ? gzinflate($data) : $data); |
| 187 | 187 | if(! $data){ |
| 188 | 188 | $this->logger->warning('Can not unserialize the cache data for file [' . $filePath . ']'); |
@@ -222,17 +222,17 @@ discard block |
||
| 222 | 222 | foreach ($list as $file) { |
| 223 | 223 | $this->logger->debug('Processing the cache file [' . $file . ']'); |
| 224 | 224 | $data = file_get_contents($file); |
| 225 | - $data = @unserialize($this->compressCacheData ? gzinflate($data) : $data); |
|
| 226 | - if(! $data){ |
|
| 227 | - $this->logger->warning('Can not unserialize the cache data for file [' . $file . ']'); |
|
| 228 | - } |
|
| 229 | - else if(time() > $data['expire']){ |
|
| 230 | - $this->logger->info('The cache data for file [' . $file . '] already expired remove it'); |
|
| 231 | - unlink($file); |
|
| 232 | - } |
|
| 233 | - else{ |
|
| 234 | - $this->logger->info('The cache data for file [' . $file . '] not yet expired skip it'); |
|
| 235 | - } |
|
| 225 | + $data = @unserialize($this->compressCacheData ? gzinflate($data) : $data); |
|
| 226 | + if(! $data){ |
|
| 227 | + $this->logger->warning('Can not unserialize the cache data for file [' . $file . ']'); |
|
| 228 | + } |
|
| 229 | + else if(time() > $data['expire']){ |
|
| 230 | + $this->logger->info('The cache data for file [' . $file . '] already expired remove it'); |
|
| 231 | + unlink($file); |
|
| 232 | + } |
|
| 233 | + else{ |
|
| 234 | + $this->logger->info('The cache data for file [' . $file . '] not yet expired skip it'); |
|
| 235 | + } |
|
| 236 | 236 | } |
| 237 | 237 | } |
| 238 | 238 | } |
@@ -255,19 +255,19 @@ discard block |
||
| 255 | 255 | } |
| 256 | 256 | } |
| 257 | 257 | |
| 258 | - /** |
|
| 259 | - * @return boolean |
|
| 260 | - */ |
|
| 261 | - public function isCompressCacheData(){ |
|
| 262 | - return $this->compressCacheData; |
|
| 263 | - } |
|
| 258 | + /** |
|
| 259 | + * @return boolean |
|
| 260 | + */ |
|
| 261 | + public function isCompressCacheData(){ |
|
| 262 | + return $this->compressCacheData; |
|
| 263 | + } |
|
| 264 | 264 | |
| 265 | - /** |
|
| 266 | - * @param boolean $compressCacheData |
|
| 267 | - * |
|
| 268 | - * @return self |
|
| 269 | - */ |
|
| 270 | - public function setCompressCacheData($status = true){ |
|
| 265 | + /** |
|
| 266 | + * @param boolean $compressCacheData |
|
| 267 | + * |
|
| 268 | + * @return self |
|
| 269 | + */ |
|
| 270 | + public function setCompressCacheData($status = true){ |
|
| 271 | 271 | //if Zlib extension is not loaded set compressCacheData to false |
| 272 | 272 | if($status === true && ! extension_loaded('zlib')){ |
| 273 | 273 | |
@@ -278,7 +278,7 @@ discard block |
||
| 278 | 278 | $this->compressCacheData = $status; |
| 279 | 279 | } |
| 280 | 280 | return $this; |
| 281 | - } |
|
| 281 | + } |
|
| 282 | 282 | |
| 283 | 283 | /** |
| 284 | 284 | * Check whether the cache feature for the handle is supported |
@@ -290,28 +290,28 @@ discard block |
||
| 290 | 290 | } |
| 291 | 291 | |
| 292 | 292 | /** |
| 293 | - * Return the Log instance |
|
| 294 | - * @return Log |
|
| 295 | - */ |
|
| 296 | - public function getLogger(){ |
|
| 297 | - return $this->logger; |
|
| 298 | - } |
|
| 293 | + * Return the Log instance |
|
| 294 | + * @return Log |
|
| 295 | + */ |
|
| 296 | + public function getLogger(){ |
|
| 297 | + return $this->logger; |
|
| 298 | + } |
|
| 299 | 299 | |
| 300 | - /** |
|
| 301 | - * Set the log instance |
|
| 302 | - * @param Log $logger the log object |
|
| 303 | - */ |
|
| 304 | - public function setLogger(Log $logger){ |
|
| 305 | - $this->logger = $logger; |
|
| 306 | - return $this; |
|
| 307 | - } |
|
| 300 | + /** |
|
| 301 | + * Set the log instance |
|
| 302 | + * @param Log $logger the log object |
|
| 303 | + */ |
|
| 304 | + public function setLogger(Log $logger){ |
|
| 305 | + $this->logger = $logger; |
|
| 306 | + return $this; |
|
| 307 | + } |
|
| 308 | 308 | |
| 309 | 309 | /** |
| 310 | - * Get the cache file full path for the given key |
|
| 311 | - * |
|
| 312 | - * @param $key the cache item key |
|
| 313 | - * @return string the full cache file path for this key |
|
| 314 | - */ |
|
| 310 | + * Get the cache file full path for the given key |
|
| 311 | + * |
|
| 312 | + * @param $key the cache item key |
|
| 313 | + * @return string the full cache file path for this key |
|
| 314 | + */ |
|
| 315 | 315 | private function getFilePath($key){ |
| 316 | 316 | return CACHE_PATH . md5($key) . '.cache'; |
| 317 | 317 | } |