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