X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Flibs%2Fcache_functions.php;h=611073a72ae89cba3603f1129bd3f217afc0c64b;hp=29cb7aea70fcfff6007293932af40f9fbc54c801;hb=6586600d8020147192e5f28ca2a3a0153f774d3c;hpb=c08df20b10d0771e7f749d7afbe1f76be9f1b028 diff --git a/inc/libs/cache_functions.php b/inc/libs/cache_functions.php index 29cb7aea70..611073a72a 100644 --- a/inc/libs/cache_functions.php +++ b/inc/libs/cache_functions.php @@ -38,23 +38,23 @@ if (!defined('__SECURITY')) { } // Caching class -class mxchange_cache { +class CacheSystem { // Define variables var $ret = "init"; - var $cache_path = ""; - var $cache_inc = ""; - var $cache_pointer = false; - var $cache_data = ""; - var $cache_version = ""; - var $cache_file = ""; + var $path = ""; + var $inc = ""; + var $pointer = false; + var $data = ""; + var $version = ""; + var $name = ""; // Constructor - function mxchange_cache($interval, $path, $tested) { + function CacheSystem ($interval, $path, $tested) { // Failed is the default $this->ret = "failed"; // Remeber path - $this->cache_path = $path; + $this->path = $path; // Check if path exists if ((is_dir($path)) && (!$tested)) { @@ -83,45 +83,42 @@ class mxchange_cache { } // Checks validity of cache file and if content is given - function cache_file ($file, $forceContent = false) { + function loadCacheFile ($file, $forceContent = false) { // Remember cache file - $this->cache_file = $file; + $this->name = $file; // Construct FQFN (full qualified file name) - $inc = $this->cache_path.$file.".cache"; - - // Rember it + filename in class - $this->cache_inc = $inc; + $this->inc = $this->path.$file.".cache"; // Check if file exists and if version matches - $status = (FILE_READABLE($inc) && (is_writeable($inc)) && ($this->ext_version_matches("cache"))); + $status = (FILE_READABLE($this->inc) && (is_writeable($this->inc)) && ($this->extensionVersionMatches("cache"))); // Return status return $status; } - function cache_init($array) { + function init () { // This will destory an existing cache file! if ($this->ret == "done") { // Create file - if (FILE_READABLE($this->cache_inc)) chmod($this->cache_inc, 0666); - $this->cache_pointer = fopen($this->cache_inc, 'w') or mxchange_die("Cannot write to cache ".$this->cache_inc." !"); + if (FILE_READABLE($this->inc)) chmod($this->inc, 0666); + $this->pointer = fopen($this->inc, 'w') or mxchange_die("Cannot write to cache ".$this->inc." !"); - // Begin of cache file - fwrite($this->cache_pointer, "pointer, "store_extension_version("cache"); + $this->storeExtensionVersion("cache"); } else { // Cannot create file ADD_FATAL(__FILE__."(".__LINE__."): ".CACHE_PROBLEMS_DETECTED); } } - function add_row ($data) { + function addRow ($data) { global $cacheArray; - if (is_resource($this->cache_pointer)) { + if (is_resource($this->pointer)) { // Write every array element to cache file foreach ($data as $k => $v) { // Write global cache array for immediate access @@ -140,7 +137,7 @@ class mxchange_cache { } // Write cache line to file - fwrite($this->cache_pointer, $this->add_raw_row($k, $v)); + fwrite($this->pointer, $this->rewriteEntry($k, $v)); } } else { // Cannot create file @@ -148,89 +145,88 @@ class mxchange_cache { } } - function cache_close() { + function finalize () { // Quit function when no pointer is set - if (empty($this->cache_pointer)) return; - if (is_resource($this->cache_pointer)) { + if (is_resource($this->pointer)) { // Write footer - fwrite($this->cache_pointer, "?>\n"); + fwrite($this->pointer, "?>\n"); // Close file add destroy handler - fclose($this->cache_pointer); + fclose($this->pointer); // Set rights - if (FILE_READABLE($this->cache_inc)) chmod($this->cache_inc, 0666); + if (FILE_READABLE($this->inc)) chmod($this->inc, 0666); // Remove pointer - unset($this->cache_pointer); + $this->pointer = false; } else { // Cannot create file ADD_FATAL(__FILE__."(".__LINE__."): ".CACHE_PROBLEMS_DETECTED); } } - function cache_load() { + function getArrayFromCache () { // Is the cache already loaded? - if (isset($this->cache_data[$this->cache_file])) { + if (isset($this->data[$this->name])) { // Return it's content! - return $this->cache_data[$this->cache_file]; + return $this->data[$this->name]; } // END - if // Is the cache file there? - if (FILE_READABLE($this->cache_inc)) { + if (FILE_READABLE($this->inc)) { // Prepare temporary array $data = array(); $cache_version = null; // Load cache file - require_once($this->cache_inc); + require_once($this->inc); // Is there an array? if (is_array($data)) { // Cache data - $this->cache_data[$this->cache_file] = $data; + $this->data[$this->name] = $data; // Cache version found? if ((is_array($cache_version)) && (count($cache_version) > 0)) { // Remember it as well... - $this->cache_version[$this->cache_file] = $cache_version; + $this->version[$this->name] = $cache_version; } else { // Invalid cache so destroy it - $this->cache_destroy(); + $this->destroyCacheFile(); // Clear cached data - $this->cache_data[$this->cache_file] = array(); + $this->data[$this->name] = array(); } // Return cache - return $this->cache_data[$this->cache_file]; + return $this->data[$this->name]; } else { // Cache problem detected! - $this->cache_destroy(); + $this->destroyCacheFile(); } } else { // Cache file not found or not readable - ADD_FATAL(__FILE__."(".__LINE__."): ".CACHE_CANNOT_LOAD_1.$this->cache_inc.CACHE_CANNOT_LOAD_2); + ADD_FATAL(__FILE__."(".__LINE__."): ".CACHE_CANNOT_LOAD_1.$this->inc.CACHE_CANNOT_LOAD_2); } } // Destroy an existing cache file - function cache_destroy() { + function destroyCacheFile () { // Is the cache file there? - if (FILE_READABLE($this->cache_inc)) { + if (FILE_READABLE($this->inc)) { // Close cache - $this->cache_close(); + $this->finalize(); // Remove cache file from system - unlink($this->cache_inc); + unlink($this->inc); // Is the file there? - if (!FILE_READABLE($this->cache_inc)) { + if (!FILE_READABLE($this->inc)) { // The cache does no longer exist so kill the content - unset($this->cache_data[$this->cache_file]); + unset($this->data[$this->name]); } else { // Not removed! - ADD_FATAL(__FILE__."(".__LINE__."): ".CACHE_CANNOT_UNLINK_1.$this->cache_inc.CACHE_CANNOT_UNLINK_2); + ADD_FATAL(__FILE__."(".__LINE__."): ".CACHE_CANNOT_UNLINK_1.$this->inc.CACHE_CANNOT_UNLINK_2); } } else { // Does not exist! @@ -238,11 +234,11 @@ class mxchange_cache { } } - function cache_remove($search, $data, $array) { - global $ARRAY; - if ((FILE_READABLE($this->cache_inc)) && (is_writeable($this->cache_inc))) { + // Unused method: + function removeEntry ($search, $data, $array) { + if ((FILE_READABLE($this->inc)) && (is_writeable($this->inc))) { // Load cache into dummy array - $dummy = $this->cache_load(); + $dummy = $this->getArrayFromCache(); // Search for key in array $key = array_search($data, $dummy[$search]); @@ -254,13 +250,13 @@ class mxchange_cache { } // Flush array to cache file - $this->cache_init($ARRAY); + $this->init(); // Write array out - $this->cache_write_array($dummy); + $this->writeArray($dummy); // Close cache file - $this->cache_close(); + $this->finalize(); } } else { // Cannot write to cache! @@ -268,23 +264,23 @@ class mxchange_cache { } } - function cache_write_array ($array) { - if (is_resource($this->cache_pointer)) { + function writeArray ($array) { + if (is_resource($this->pointer)) { foreach ($array as $k => $v) { if (is_array($v)) { // Multi line(s) found $LINE = ""; foreach($v as $k2 => $v2) { // Put every array element in a row... - $LINE .= $this->add_raw_row($k, $v2); + $LINE .= $this->rewriteEntry($k, $v2); } } else { // Single line found - $LINE = $this->add_raw_row($k, $v); + $LINE = $this->rewriteEntry($k, $v); } // Write line(s) - fwrite($this->cache_pointer, $LINE); + fwrite($this->pointer, $LINE); } // END - foreach } else { // Cannot write array! @@ -292,11 +288,11 @@ class mxchange_cache { } } - function cache_replace($search, $replace, $search_key, $array) { - global $ARRAY; - if ((FILE_READABLE($this->cache_inc)) && (is_writeable($this->cache_inc))) { + // Unused method + function replaceEntry ($search, $replace, $search_key, $array) { + if ((FILE_READABLE($this->inc)) && (is_writeable($this->inc))) { // Load cache into dummy array - $dummy = $this->cache_load(); + $dummy = $this->getArrayFromCache(); // Check if $dummy is valid (prevents some errors) if ((is_array($dummy)) && (isset($dummy[$search])) && (is_array($dummy[$search]))) { @@ -314,13 +310,13 @@ class mxchange_cache { } // Flush array to cache file - $this->cache_init($ARRAY); + $this->init(); // Write array out - $this->cache_write_array($dummy); + $this->writeArray($dummy); // Close cache file - $this->cache_close(); + $this->finalize(); } } } else { @@ -329,39 +325,49 @@ class mxchange_cache { } } - function store_extension_version ($ext_name) { + function storeExtensionVersion ($ext_name) { // Valid cache pointer? - if (is_resource($this->cache_pointer)) { + if (is_resource($this->pointer)) { // Get extension version $ext_ver = GET_EXT_VERSION($ext_name); // Write cache line to file - fwrite($this->cache_pointer, "\$cache_version['".$ext_name."'] = \"".$ext_ver."\";\n"); + fwrite($this->pointer, "\$cache_version['".$ext_name."'] = \"".$ext_ver."\";\n"); } else { // Cannot create file ADD_FATAL(__FILE__."(".__LINE__."): ".CACHE_PROBLEMS_DETECTED); } } - function ext_version_matches ($ext_name) { + function extensionVersionMatches ($ext_name) { // Load cache (dummy) - $this->cache_load(); + $this->getArrayFromCache(); // Get extension version $ext_ver = GET_EXT_VERSION($ext_name); // Compare both - return ((isset($this->cache_version[$this->cache_file][$ext_name])) && ($this->cache_version[$this->cache_file][$ext_name] == $ext_ver)); + return ((isset($this->version[$this->name][$ext_name])) && ($this->version[$this->name][$ext_name] == $ext_ver)); } - function add_raw_row ($key, $value) { + function rewriteEntry ($key, $value) { // Init line $line = ""; // String or non-string? ;-) - if ((is_string($value)) || (is_null($value))) { + if (is_string($value)) { // String... $line = "\$data['".$key."'][] = \"".$value."\";\n"; + } elseif (is_null($value)) { + // Null + $line = "\$data['".$key."'][] = null;\n"; + } elseif (is_bool($value)) { + // Boolean value + if ($value === true) { + $line = "\$data['".$key."'][] = true;\n"; + } else { + $line = "\$data['".$key."'][] = false;\n"; + } } else { // Non-string $line = "\$data['".$key."'][] = ".$value.";\n";