X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=inc%2Flibs%2Fcache_functions.php;h=ca0aee8331aebeb06611e7661d97b930e790755e;hb=98077af43126dd7c274fe57f6ea0494e906e8943;hp=1e38e1faf6763a3ba996c0b5ca1a358c0647789e;hpb=81bfbcd72e424060ea1223b49ad92fcfa150f361;p=mailer.git diff --git a/inc/libs/cache_functions.php b/inc/libs/cache_functions.php index 1e38e1faf6..ca0aee8331 100644 --- a/inc/libs/cache_functions.php +++ b/inc/libs/cache_functions.php @@ -66,7 +66,7 @@ class CacheSystem { $this->path = $path; // Check if path exists - if ((isDirectory($path)) && (!$tested)) { + if ((isDirectory($path)) && ($tested === false)) { // Make FQFN for dummy file $fqfn = $path . 'dummy.tmp'; @@ -76,7 +76,7 @@ class CacheSystem { // Is the file there? if (isFileReadable($fqfn)) { // Yes, we can do. So let's remove it - unlink($fqfn); + removeFile($fqfn); // Is there a .htaccess file? if (isFileReadable($path . '.htaccess')) { @@ -226,16 +226,44 @@ class CacheSystem { } // Destroy an existing cache file - function destroyCacheFile () { + function destroyCacheFile ($removeArray = false) { + // Only run in regular output mode + if (getOutputMode() != 0) { + // Debug message if allowed + if (isDebugModeEnabled()) { + // Debug message + DEBUG_LOG(__METHOD__, __LINE__, 'Not removing cache ' . $this->name . ' in output_mode=' . getOutputMode()); + } // END - if + + // Abort here + return; + } // END - if + // Is the cache file there? if ((!isset($this->rebuilt[$this->name])) && ($this->isCacheReadable())) { // Close cache $this->finalize(); + // Debug-mode enabled? + if (isDebugModeEnabled()) { + // Log removal of cache + DEBUG_LOG(__METHOD__, __LINE__, 'removing cache: ' . $this->name); + } // END - if + // Remove cache file from system - //* DEBUG: */ print __METHOD__."(".__LINE__."): {$this->name} - DESTROYED!
\n"; - unlink($this->fqfn); - // @TODO remove from $GLOBALS['cache_array']!!! + removeFile($this->fqfn); + + // Shall we remove the array from memory? + if ($removeArray === true) { + // Debug message if allowed + if (isDebugModeEnabled()) { + // Debug message + DEBUG_LOG(__METHOD__, __LINE__, 'removing array!'); + } // END - if + + // Remove it from memory + unset($GLOBALS['cache_array'][$this->name]); + } // END - if // Is the file there? if (!$this->isCacheReadable()) { @@ -429,9 +457,9 @@ function FILTER_CACHE_DESTROY_ON_EXT_CHANGE ($data) { if (!isCacheInstanceValid()) return $data; // Remove cache - if ($GLOBALS['cache_instance']->loadCacheFile('config')) $GLOBALS['cache_instance']->destroyCacheFile(); - if ($GLOBALS['cache_instance']->loadCacheFile('extensions')) $GLOBALS['cache_instance']->destroyCacheFile(); - if ($GLOBALS['cache_instance']->loadCacheFile('modreg')) $GLOBALS['cache_instance']->destroyCacheFile(); + if ($GLOBALS['cache_instance']->loadCacheFile('config')) $GLOBALS['cache_instance']->destroyCacheFile(false); + if ($GLOBALS['cache_instance']->loadCacheFile('extensions')) $GLOBALS['cache_instance']->destroyCacheFile(false); + if ($GLOBALS['cache_instance']->loadCacheFile('modreg')) $GLOBALS['cache_instance']->destroyCacheFile(false); // Return it return $data; @@ -443,24 +471,26 @@ function FILTER_CACHE_DESTROY_ON_ADMIN_CHANGE () { if (!isCacheInstanceValid()) return false; // Remove cache - if ($GLOBALS['cache_instance']->loadCacheFile('admins')) $GLOBALS['cache_instance']->destroyCacheFile(); + if ($GLOBALS['cache_instance']->loadCacheFile('admins')) $GLOBALS['cache_instance']->destroyCacheFile(false); } // Destroy all cache files function FILTER_CACHE_DESTROY_ALL () { // Skip this step if the cache instance is not there + DEBUG_LOG(__FUNCTION__, __LINE__, 'Called!'); if (!isCacheInstanceValid()) return false; // Remove cache files - if ($GLOBALS['cache_instance']->loadCacheFile('admins')) $GLOBALS['cache_instance']->destroyCacheFile(); - if ($GLOBALS['cache_instance']->loadCacheFile('admins_acls')) $GLOBALS['cache_instance']->destroyCacheFile(); - if ($GLOBALS['cache_instance']->loadCacheFile('config')) $GLOBALS['cache_instance']->destroyCacheFile(); - if ($GLOBALS['cache_instance']->loadCacheFile('extensions')) $GLOBALS['cache_instance']->destroyCacheFile(); - if ($GLOBALS['cache_instance']->loadCacheFile('modreg')) $GLOBALS['cache_instance']->destroyCacheFile(); - if ($GLOBALS['cache_instance']->loadCacheFile('refdepths')) $GLOBALS['cache_instance']->destroyCacheFile(); - if ($GLOBALS['cache_instance']->loadCacheFile('refsystem')) $GLOBALS['cache_instance']->destroyCacheFile(); - if ($GLOBALS['cache_instance']->loadCacheFile('themes')) $GLOBALS['cache_instance']->destroyCacheFile(); - if ($GLOBALS['cache_instance']->loadCacheFile('revision')) $GLOBALS['cache_instance']->destroyCacheFile(); + if ($GLOBALS['cache_instance']->loadCacheFile('admins')) $GLOBALS['cache_instance']->destroyCacheFile(false); + if ($GLOBALS['cache_instance']->loadCacheFile('admins_acls')) $GLOBALS['cache_instance']->destroyCacheFile(false); + if ($GLOBALS['cache_instance']->loadCacheFile('config')) $GLOBALS['cache_instance']->destroyCacheFile(false); + if ($GLOBALS['cache_instance']->loadCacheFile('extensions')) $GLOBALS['cache_instance']->destroyCacheFile(false); + if ($GLOBALS['cache_instance']->loadCacheFile('modreg')) $GLOBALS['cache_instance']->destroyCacheFile(false); + if ($GLOBALS['cache_instance']->loadCacheFile('refdepths')) $GLOBALS['cache_instance']->destroyCacheFile(false); + if ($GLOBALS['cache_instance']->loadCacheFile('refsystem')) $GLOBALS['cache_instance']->destroyCacheFile(false); + if ($GLOBALS['cache_instance']->loadCacheFile('themes')) $GLOBALS['cache_instance']->destroyCacheFile(false); + if ($GLOBALS['cache_instance']->loadCacheFile('revision')) $GLOBALS['cache_instance']->destroyCacheFile(false); + DEBUG_LOG(__FUNCTION__, __LINE__, 'Done!'); } // Filter for purging entire admin menu cache