X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fclasses%2Fcachesystem.class.php;h=ae127dc27eb69e79faca27b1fd481cb94310c23b;hp=4c23235ac20812d568c89b9d06066dcd36354f5e;hb=aa1d1076b9115580ea07374b9c470f5a0c40ca07;hpb=27d3ef2b2af55933a48294ff9bc9750fdbe050eb diff --git a/inc/classes/cachesystem.class.php b/inc/classes/cachesystem.class.php index 4c23235ac2..ae127dc27e 100644 --- a/inc/classes/cachesystem.class.php +++ b/inc/classes/cachesystem.class.php @@ -18,6 +18,7 @@ * svn:keywords Date Revision" (autoprobset!) at least!!!!!! * * -------------------------------------------------------------------- * * Copyright (c) 2003 - 2009 by Roland Haeder * + * Copyright (c) 2009, 2010 by Mailer Developer Team * * For more information visit: http://www.mxchange.org * * * * This program is free software; you can redistribute it and/or modify * @@ -113,7 +114,7 @@ class CacheSystem { fwrite($this->pointer, "".__LINE__."): ".getMessage('CACHE_PROBLEMS_DETECTED')); + addFatalMessage(__METHOD__, __LINE__, '(' . __LINE__ . '): ' . getMessage('CACHE_PROBLEMS_DETECTED')); } } @@ -139,9 +140,6 @@ class CacheSystem { if (($k == 'ext_keep') && ($v == 'Y')) { $GLOBALS['cache_array']['always_active'][$data['ext_name']] = $v; } // END - if - } elseif (is_array($v)) { - // Serialize and BASE64-encode the array - $v = base64_encode(serialize($v)); } elseif ($this->name == 'config') { // Configuration $GLOBALS['cache_array']['config'][$data['config']][$k] = $v; @@ -168,7 +166,7 @@ class CacheSystem { $GLOBALS['cache_array']['refsystem'][$k][$data['id']] = $v; } elseif ($this->name == 'revision') { // Revision data - $GLOBALS['cache_array']['revision'][$k] = $v; + $GLOBALS['cache_array']['revision'][$k][0] = $v; } elseif ($this->name == 'themes') { // Themes if ($k == 'theme_path') { @@ -179,6 +177,9 @@ class CacheSystem { } elseif ($this->name == 'imprint') { // Imprint $GLOBALS['cache_array']['imprint'][$k][$data['imprint_id']] = $v; + } elseif (is_array($v)) { + // Serialize and BASE64-encode the array + $v = base64_encode(serialize($v)); } else { // Finialize the cache and close it $this->finalize(); @@ -195,7 +196,7 @@ class CacheSystem { } // END - foreach } else { // Cannot create file - addFatalMessage(__METHOD__, __LINE__, "(".__LINE__."): ".getMessage('CACHE_PROBLEMS_DETECTED')); + addFatalMessage(__METHOD__, __LINE__, '(' . __LINE__ . '): ' . getMessage('CACHE_PROBLEMS_DETECTED')); } } @@ -220,7 +221,7 @@ class CacheSystem { // Remove pointer and status unset($this->status[$this->name]); $this->pointer = false; - //* DEBUG: */ outputHtml(__METHOD__."(".__LINE__."): {$this->name} - FINALIZED!
"); + //* DEBUG: */ outputHtml(__METHOD__ . '(' . __LINE__."): {$this->name} - FINALIZED!
"); } // END - if } @@ -260,7 +261,7 @@ class CacheSystem { } else { // Cache file not found or not readable debug_report_bug($this->name); - addFatalMessage(__METHOD__, __LINE__, "(".__LINE__."): ".getMaskedMessage('CACHE_CANNOT_LOAD', $this->fqfn)); + addFatalMessage(__METHOD__, __LINE__, '(' . __LINE__ . '): ' . getMaskedMessage('CACHE_CANNOT_LOAD', $this->fqfn)); // Try to remove it $this->removeCacheFile(); @@ -315,7 +316,7 @@ class CacheSystem { $this->rebuilt[$this->name] = true; } else { // Not removed! - addFatalMessage(__METHOD__, __LINE__, "(".__LINE__."): ".getMaskedMessage('CACHE_CANNOT_UNLINK', $this->fqfn)); + addFatalMessage(__METHOD__, __LINE__, '(' . __LINE__ . '): ' . getMaskedMessage('CACHE_CANNOT_UNLINK', $this->fqfn)); } } // END - if } @@ -346,7 +347,7 @@ class CacheSystem { } } else { // Cannot write to cache! - addFatalMessage(__METHOD__, __LINE__, "(".__LINE__."): ".getMessage('CACHE_PROBLEMS_DETECTED')); + addFatalMessage(__METHOD__, __LINE__, '(' . __LINE__ . '): ' . getMessage('CACHE_PROBLEMS_DETECTED')); } } @@ -370,7 +371,7 @@ class CacheSystem { } // END - foreach } else { // Cannot write array! - addFatalMessage(__METHOD__, __LINE__, "(".__LINE__."): ".getMessage('CACHE_PROBLEMS_DETECTED')); + addFatalMessage(__METHOD__, __LINE__, '(' . __LINE__ . '): ' . getMessage('CACHE_PROBLEMS_DETECTED')); } } @@ -407,7 +408,7 @@ class CacheSystem { } // END - if } else { // Cannot write to cache! - addFatalMessage(__METHOD__, __LINE__, "(".__LINE__."): ".getMessage('CACHE_PROBLEMS_DETECTED')); + addFatalMessage(__METHOD__, __LINE__, '(' . __LINE__ . '): ' . getMessage('CACHE_PROBLEMS_DETECTED')); } } @@ -426,41 +427,44 @@ class CacheSystem { // Write cache line to file fwrite($this->pointer, $this->rewriteEntry($ext_name, $ext_ver, 'version', true)); } // END - if - //* DEBUG: */ outputHtml(__METHOD__."(".__LINE__."): {$this->name} - {$ext_name}={$ext_ver}
"); + //* DEBUG: */ outputHtml(__METHOD__ . '(' . __LINE__."): {$this->name} - {$ext_name}={$ext_ver}
"); } else { // Cannot create file - addFatalMessage(__METHOD__, __LINE__, "(".__LINE__."): ".getMessage('CACHE_PROBLEMS_DETECTED')); + addFatalMessage(__METHOD__, __LINE__, '(' . __LINE__ . '): ' . getMessage('CACHE_PROBLEMS_DETECTED')); } } // Checks wether versions from cache and extension matches function extensionVersionMatches ($ext_name) { - // Default is not matching - $matches = false; - - // Compare only if installed - if (isExtensionInstalled($ext_name)) { - // Get extension version - $ext_ver = getExtensionVersion($ext_name); - - // Debug messages - if (isset($this->version[$this->name][$ext_name])) { - // Does it match? - $matches = ((isset($this->version[$this->name][$ext_name])) && ($this->version[$this->name][$ext_name] == $ext_ver)); - } elseif ($this->isCacheReadable()) { - // No cache version found! - logDebugMessage(__METHOD__, __LINE__, "Cache {$this->name} has missing version entry for extension {$ext_name}! Purging cache..."); - - // Remove the cache file - $this->removeCacheFile(true); + // Check cache + if (!isset($GLOBALS[__METHOD__][$ext_name])) { + // Compare only if installed + if (isExtensionInstalled($ext_name)) { + // Get extension version + $ext_ver = getExtensionVersion($ext_name); + + // Debug messages + if (isset($this->version[$this->name][$ext_name])) { + // Does it match? + $GLOBALS[__METHOD__][$ext_name] = ((isset($this->version[$this->name][$ext_name])) && ($this->version[$this->name][$ext_name] == $ext_ver)); + } elseif ($this->isCacheReadable()) { + // No cache version found! + logDebugMessage(__METHOD__, __LINE__, "Cache {$this->name} has missing version entry for extension {$ext_name}! Purging cache..."); + + // Remove the cache file + $this->removeCacheFile(true); + } + } else { + // Not installed, does always match + $GLOBALS[__METHOD__][$ext_name] = true; } } else { - // Not installed, does always match - $matches = true; + // Cache entry found, log debug message + //* DEBUG: */ logDebugMessage(__METHOD__, __LINE__, 'ext_name=' . $ext_name . ', matches=' . intval($GLOBALS[__METHOD__][$ext_name])); } // Compare both - return $matches; + return $GLOBALS[__METHOD__][$ext_name]; } // Rewrit the entry so it can be stored in cache file @@ -491,6 +495,9 @@ class CacheSystem { // False $line = '$this->' . $prefix . "['".$this->name."']['" . $key . "']" . $extender . " = false;\n"; } + } elseif (isset($value[0])) { + // These lines needs fixing + debug_report_bug('Invalid entry with [0] found. key=' . $key); } else { // Non-string $line = '$this->' . $prefix . "['".$this->name."']['" . $key . "']" . $extender . " = " . $value . ";\n";