From b4e2f7a5b9f3e06d01c035fbf4c0cab668af043f Mon Sep 17 00:00:00 2001 From: Phil Date: Fri, 24 May 2024 12:19:27 +0200 Subject: [PATCH] #62 update Cache_Lite pear Library in place via https://github.com/pear/Cache_Lite --- proxy/libs/Cache/Lite.php | 134 +++++++++++++++++++------------------- 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/proxy/libs/Cache/Lite.php b/proxy/libs/Cache/Lite.php index e319385..047f0f7 100644 --- a/proxy/libs/Cache/Lite.php +++ b/proxy/libs/Cache/Lite.php @@ -79,7 +79,7 @@ class Cache_Lite * @var string $_file */ var $_file; - + /** * File name (without path) * @@ -128,7 +128,7 @@ class Cache_Lite * @var int $_pearErrorMode */ var $_pearErrorMode = CACHE_LITE_ERROR_RETURN; - + /** * Current cache id * @@ -146,7 +146,7 @@ class Cache_Lite /** * Enable / Disable "Memory Caching" * - * NB : There is no lifetime for memory caching ! + * NB : There is no lifetime for memory caching ! * * @var boolean $_memoryCaching */ @@ -180,7 +180,7 @@ class Cache_Lite * @var int $memoryCachingLimit */ var $_memoryCachingLimit = 1000; - + /** * File Name protection * @@ -192,17 +192,17 @@ class Cache_Lite * @var boolean $fileNameProtection */ var $_fileNameProtection = true; - + /** * Enable / disable automatic serialization * * it can be used to save directly datas which aren't strings - * (but it's slower) + * (but it's slower) * * @var boolean $_serialize */ var $_automaticSerialization = false; - + /** * Disable / Tune the automatic cleaning process * @@ -215,45 +215,45 @@ class Cache_Lite * @var int $_automaticCleaning */ var $_automaticCleaningFactor = 0; - + /** * Nested directory level * - * Set the hashed directory structure level. 0 means "no hashed directory - * structure", 1 means "one level of directory", 2 means "two levels"... - * This option can speed up Cache_Lite only when you have many thousands of - * cache file. Only specific benchs can help you to choose the perfect value + * Set the hashed directory structure level. 0 means "no hashed directory + * structure", 1 means "one level of directory", 2 means "two levels"... + * This option can speed up Cache_Lite only when you have many thousands of + * cache file. Only specific benchs can help you to choose the perfect value * for you. Maybe, 1 or 2 is a good start. * * @var int $_hashedDirectoryLevel */ var $_hashedDirectoryLevel = 0; - + /** * Umask for hashed directory structure * * @var int $_hashedDirectoryUmask */ var $_hashedDirectoryUmask = 0700; - + /** * API break for error handling in CACHE_LITE_ERROR_RETURN mode - * + * * In CACHE_LITE_ERROR_RETURN mode, error handling was not good because * for example save() method always returned a boolean (a PEAR_Error object * would be better in CACHE_LITE_ERROR_RETURN mode). To correct this without * breaking the API, this option (false by default) can change this handling. - * + * * @var boolean */ var $_errorHandlingAPIBreak = false; - + var $_hashedDirectoryGroup = NULL; - + var $_cacheFileMode = NULL; - + var $_cacheFileGroup = NULL; - + // --- Public methods --- /** @@ -282,12 +282,12 @@ class Cache_Lite * 'cacheFileMode' => filesystem mode of newly created cache files (int) * 'cacheFileGroup' => group of newly created cache files (int | string) (see function chgrp) * ); - * - * If sys_get_temp_dir() is available and the - * 'cacheDir' option is not provided in the - * constructor options array its output is used + * + * If sys_get_temp_dir() is available and the + * 'cacheDir' option is not provided in the + * constructor options array its output is used * to determine the suitable temporary directory. - * + * * @see http://de.php.net/sys_get_temp_dir * @see http://pear.php.net/bugs/bug.php?id=18328 * @@ -313,7 +313,7 @@ class Cache_Lite { self::__construct($options); } - + /** * Generic way to set a Cache_Lite option * @@ -323,7 +323,7 @@ class Cache_Lite * @var mixed $value value of the option * @access public */ - function setOption($name, $value) + function setOption($name, $value) { $availableOptions = array('errorHandlingAPIBreak', 'hashedDirectoryUmask', 'hashedDirectoryLevel', 'automaticCleaningFactor', 'automaticSerialization', 'fileNameProtection', 'memoryCaching', 'onlyMemoryCaching', 'memoryCachingLimit', 'cacheDir', 'caching', 'lifeTime', 'fileLocking', 'writeControl', 'readControl', 'readControlType', 'pearErrorMode', 'hashedDirectoryGroup', 'cacheFileMode', 'cacheFileGroup'); if (in_array($name, $availableOptions)) { @@ -331,7 +331,7 @@ class Cache_Lite $this->$property = $value; } } - + /** * Test if a cache is available and (if yes) return it * @@ -359,7 +359,7 @@ class Cache_Lite } if ($this->_onlyMemoryCaching) { return false; - } + } } if (($doNotTestCacheValidity) || (is_null($this->_refreshTime))) { if (file_exists($this->_file)) { @@ -380,7 +380,7 @@ class Cache_Lite } return false; } - + /** * Save some data in a cache file * @@ -406,24 +406,24 @@ class Cache_Lite } } if ($this->_automaticCleaningFactor>0 && ($this->_automaticCleaningFactor==1 || mt_rand(1, $this->_automaticCleaningFactor)==1)) { - $this->clean(false, 'old'); + $this->clean(false, 'old'); } if ($this->_writeControl) { $res = $this->_writeAndControl($data); if (is_bool($res)) { if ($res) { - return true; + return true; } // if $res if false, we need to invalidate the cache @touch($this->_file, time() - 2*abs($this->_lifeTime)); return false; - } + } } else { $res = $this->_write($data); } if (is_object($res)) { - // $res is a PEAR_Error object - if (!($this->_errorHandlingAPIBreak)) { + // $res is a PEAR_Error object + if (!($this->_errorHandlingAPIBreak)) { return false; // we return false (old API) } } @@ -466,7 +466,7 @@ class Cache_Lite * else only cache files of the specified group will be destroyed * * @param string $group name of the cache group - * @param string $mode flush cache mode : 'old', 'ingroup', 'notingroup', + * @param string $mode flush cache mode : 'old', 'ingroup', 'notingroup', * 'callback_myFunction' * @return boolean true if no problem * @access public @@ -475,12 +475,12 @@ class Cache_Lite { return $this->_cleanDir($this->_cacheDir, $group, $mode); } - + /** * Set to debug mode * * When an error is found, the script will stop and the message will be displayed - * (in debug mode only). + * (in debug mode only). * * @access public */ @@ -538,7 +538,7 @@ class Cache_Lite } } } - + /** * Return the cache last modification time * @@ -546,11 +546,11 @@ class Cache_Lite * * @return int last modification time */ - function lastModified() + function lastModified() { return @filemtime($this->_file); } - + /** * Trigger a PEAR error * @@ -564,29 +564,29 @@ class Cache_Lite */ function raiseError($msg, $code) { - error_log("[code] $msg"); + return PEAR::raiseError($msg, $code, $this->_pearErrorMode); } - + /** * Extend the life of a valid cache file - * + * * see http://pear.php.net/bugs/bug.php?id=6681 - * + * * @access public */ function extendLife() { @touch($this->_file); } - + // --- Private methods --- - + /** * Compute & set the refresh time * * @access private */ - function _setRefreshTime() + function _setRefreshTime() { if (is_null($this->_lifeTime)) { $this->_refreshTime = null; @@ -594,10 +594,10 @@ class Cache_Lite $this->_refreshTime = time() - $this->_lifeTime; } } - + /** * Remove a file - * + * * @param string $file complete file path and name * @return boolean true if no problem * @access private @@ -607,7 +607,7 @@ class Cache_Lite if (!@unlink($file)) { return $this->raiseError('Cache_Lite : Unable to remove cache !', -3); } - return true; + return true; } /** @@ -620,7 +620,7 @@ class Cache_Lite * @return boolean true if no problem * @access private */ - function _cleanDir($dir, $group = false, $mode = 'ingroup') + function _cleanDir($dir, $group = false, $mode = 'ingroup') { if ($this->_fileNameProtection) { $motif = ($group) ? 'cache_'.md5($group).'_' : 'cache_'; @@ -638,7 +638,7 @@ class Cache_Lite return true; } } - if (!($dh = opendir($dir))) { + if (!($dh = @opendir($dir))) { return $this->raiseError('Cache_Lite : Unable to open cache directory !', -4); } $result = true; @@ -710,7 +710,7 @@ class Cache_Lite $key = key($this->_memoryCachingArray); next($this->_memoryCachingArray); unset($this->_memoryCachingArray[$key]); - + } else { $this->_memoryCachingCounter = $this->_memoryCachingCounter + 1; } @@ -725,7 +725,7 @@ class Cache_Lite */ function _setFileName($id, $group) { - + if ($this->_fileNameProtection) { $suffix = 'cache_'.md5($group).'_'.md5($id); } else { @@ -736,12 +736,12 @@ class Cache_Lite $hash = md5($suffix); for ($i=0 ; $i<$this->_hashedDirectoryLevel ; $i++) { $root = $root . 'cache_' . substr($hash, 0, $i + 1) . '/'; - } + } } $this->_fileName = $suffix; $this->_file = $root.$suffix; } - + /** * Read the cache file and return the content * @@ -781,7 +781,7 @@ class Cache_Lite $hashData = $this->_hash($data, $this->_readControlType); if ($hashData != $hashControl) { if (!(is_null($this->_lifeTime))) { - @touch($this->_file, time() - 2*abs($this->_lifeTime)); + @touch($this->_file, time() - 2*abs($this->_lifeTime)); } else { @unlink($this->_file); } @@ -790,9 +790,9 @@ class Cache_Lite } return $data; } - return $this->raiseError('Cache_Lite : Unable to read cache !', -2); + return $this->raiseError('Cache_Lite : Unable to read cache !', -2); } - + /** * Write the given data in the cache file * @@ -819,7 +819,7 @@ class Cache_Lite } // if both _cacheFileMode and _cacheFileGroup is null, then we don't need to call // file_exists (see below: if ($is_newfile) ...) - $is_newfile = (! is_null($this->_cacheFileMode) || !is_null($this->_cacheFileGroup)) + $is_newfile = (! is_null($this->_cacheFileMode) || !is_null($this->_cacheFileGroup)) && ! @file_exists($this->_file); $fp = @fopen($this->_file, "wb"); if ($fp) { @@ -845,10 +845,10 @@ class Cache_Lite if ($this->_fileLocking) @flock($fp, LOCK_UN); @fclose($fp); return true; - } + } return $this->raiseError('Cache_Lite : Unable to write cache file : '.$this->_file, -1); } - + /** * Write the given data in the cache file and control it just after to avoir corrupted cache entries * @@ -867,11 +867,11 @@ class Cache_Lite return $dataRead; # We return the PEAR_Error object } if ((is_bool($dataRead)) && (!$dataRead)) { - return false; + return false; } return ($dataRead==$data); } - + /** * Make a control key with the string containing datas * @@ -893,5 +893,5 @@ class Cache_Lite return $this->raiseError('Unknown controlType ! (available values are only \'md5\', \'crc32\', \'strlen\')', -5); } } - -} + +}