X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fclasses%2Fcachesystem.class.php;h=713c1696ce14d7247cff5d4d6d4c35ae859d5c3e;hb=d3ea83baa3f2607db46c26f7d8527c84b994f116;hp=587a5281a14b8ad033f1a6c2c1050d63948bdf27;hpb=4f24ca9ad8ff2ff19279f1b39ffdf458b1a3f3d6;p=mailer.git diff --git a/inc/classes/cachesystem.class.php b/inc/classes/cachesystem.class.php index 587a5281a1..713c1696ce 100644 --- a/inc/classes/cachesystem.class.php +++ b/inc/classes/cachesystem.class.php @@ -16,8 +16,8 @@ * $Author:: $ * * -------------------------------------------------------------------- * * Copyright (c) 2003 - 2009 by Roland Haeder * - * Copyright (c) 2009, 2010 by Mailer Developer Team * - * For more information visit: http://www.mxchange.org * + * Copyright (c) 2009 - 2012 by Mailer Developer Team * + * For more information visit: http://mxchange.org * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -65,18 +65,20 @@ class CacheSystem { var $extension = '.cache'; var $status = array(); var $readable = array(); + var $fullPath = ''; // Constructor function CacheSystem () { + // Construct full path + $this->fullPath = getPath() . getCachePath(); + // Failed is the default $this->setStatusCode('failed'); - // Remeber path - // Check if path exists - if (isDirectory(getCachePath())) { + if (isDirectory($this->fullPath)) { // Is there a .htaccess file? - if (isFileReadable(getCachePath() . '.htaccess')) { + if (isFileReadable($this->fullPath . '.htaccess')) { // All done! $this->setStatusCode('done'); } else { @@ -92,7 +94,7 @@ class CacheSystem { $this->name = $cacheName; // Construct FQFN (full qualified file name) - $this->fqfn = getCachePath() . $cacheName . $this->extension; + $this->fqfn = $this->fullPath . $cacheName . $this->extension; // Check if file exists and if version matches if (!isset($this->status[$cacheName])) { @@ -117,13 +119,13 @@ class CacheSystem { // Create file if ($this->isCacheReadable()) changeMode($this->fqfn, 0666); - $this->pointer = fopen($this->fqfn, 'w') or debug_report_bug(__METHOD__, __LINE__, 'Cannot write to cache ' . $this->fqfn . ' !'); + $this->pointer = fopen($this->fqfn, 'w') or reportBug(__METHOD__, __LINE__, 'Cannot write to cache ' . $this->fqfn . ' !'); // Add open PHP tag $this->writeLine('' . __LINE__ . '): {--CACHE_PROBLEMS_DETECTED'); + reportBug(__METHOD__, __LINE__, 'Problems with cache directory detected, getStatusCode()=' . $this->getStatusCode()); } } @@ -136,10 +138,10 @@ class CacheSystem { // Is the pointer a valid resource? if (is_resource($this->pointer)) { // Write the line - fwrite($this->pointer, $line . "\n"); + fwrite($this->pointer, $line . chr(10)); } else { // Something bad happened - debug_report_bug(__METHOD__, __LINE__, 'Pointer type is ' . gettype($this->pointer) . ', expected is resource.'); + reportBug(__METHOD__, __LINE__, 'Pointer type is ' . gettype($this->pointer) . ', expected is resource.'); } } @@ -183,11 +185,14 @@ class CacheSystem { } else { $GLOBALS['cache_array']['admin'][$k][$data['admin_id']] = $v; } + } elseif ($this->name == 'admin_acls') { + // Access control lines + array_push($GLOBALS['cache_array']['admin_acls'][$k][$data['admin_id']], $v); } elseif ($this->name == 'refdepths') { - // Referal levels + // Referral levels $GLOBALS['cache_array']['refdepths'][$k][$data['id']] = $v; } elseif ($this->name == 'refsystem') { - // Referal system + // Referral system $GLOBALS['cache_array']['refsystem'][$k][$data['id']] = $v; } elseif ($this->name == 'revision') { // Revision data @@ -202,6 +207,15 @@ class CacheSystem { } elseif ($this->name == 'imprint') { // Imprint $GLOBALS['cache_array']['imprint'][$k][$data['imprint_id']] = $v; + } elseif ($this->name == 'points_data') { + // Table 'points_data' + $GLOBALS['cache_array']['points_data'][$k][$data['id']] = $v; + } elseif ($this->name == 'earning') { + // Table 'earning' + $GLOBALS['cache_array']['earning'][$k][$data['earning_id']] = $v; + } elseif ($this->name == 'payments') { + // Table 'payments' + $GLOBALS['cache_array']['payments'][$k][$data['id']] = $v; } elseif (is_array($v)) { // Serialize and BASE64-encode the array $v = base64_encode(serialize($v)); @@ -212,8 +226,8 @@ class CacheSystem { // Remove cache $this->removeCacheFile(true); - // Unsupported cache found! - debug_report_bug(__METHOD__, __LINE__, 'Unsupported cache ' . $this->name . ' detected.'); + // Unsupported/unhandled cache detected + reportBug(__METHOD__, __LINE__, 'Unsupported cache ' . $this->name . ' detected, data=' . print_r($data, true) . ',k=' . $k . ',v=' . $v); } // Write cache line to file @@ -221,7 +235,7 @@ class CacheSystem { } // END - foreach } else { // Cannot create file - addFatalMessage(__METHOD__, __LINE__, '(' . __LINE__ . '): {--CACHE_PROBLEMS_DETECTED'); + reportBug(__METHOD__, __LINE__, 'Problem with cache detected, no resource! pointer[]=' . gettype($this->pointer)); } } @@ -246,7 +260,7 @@ class CacheSystem { // Remove pointer and status unset($this->status[$this->name]); $this->pointer = false; - //* DEBUG: */ debugOutput(__METHOD__ . '(' . __LINE__.'): '.$this->name.' - FINALIZED!'); + //* DEBUG: */ logDebugMessage(__METHOD__, __LINE__, 'name=' . $this->name . ' - FINALIZED!'); } // END - if } @@ -285,8 +299,7 @@ class CacheSystem { } // END - if } else { // Cache file not found or not readable - debug_report_bug(__METHOD__, __LINE__, $this->name); - addFatalMessage(__METHOD__, __LINE__, '(' . __LINE__ . '): ' . getMaskedMessage('CACHE_CANNOT_LOAD', $this->fqfn)); + reportBug(__METHOD__, __LINE__, '{%message,CACHE_CANNOT_LOAD=' . $this->name . '%}'); // Try to remove it $this->removeCacheFile(); @@ -328,6 +341,7 @@ class CacheSystem { } // END - if // Remove cache file from system + //* DEBUG: */ reportBug(__METHOD__, __LINE__, 'About to remove ' . basename($this->fqfn) . '!'); removeFile($this->fqfn); // Reset read status @@ -341,7 +355,7 @@ class CacheSystem { $this->rebuilt[$this->name] = true; } else { // Not removed! - addFatalMessage(__METHOD__, __LINE__, '(' . __LINE__ . '): ' . getMaskedMessage('CACHE_CANNOT_UNLINK', $this->fqfn)); + reportBug(__METHOD__, __LINE__, '{%message,CACHE_CANNOT_UNLINK=' . $this->name . '%}'); } } // END - if } @@ -369,10 +383,10 @@ class CacheSystem { // Close cache file $this->finalize(); - } + } // END - if } else { // Cannot write to cache! - addFatalMessage(__METHOD__, __LINE__, '(' . __LINE__ . '): {--CACHE_PROBLEMS_DETECTED'); + reportBug(__METHOD__, __LINE__, 'Problem with cache detected: Unexpected status ' . $this->status[$this->name]); } } @@ -382,7 +396,7 @@ class CacheSystem { if (is_array($v)) { // Multi line(s) found $LINE = ''; - foreach($v as $k2 => $v2) { + foreach ($v as $k2 => $v2) { // Put every array element in a row... $LINE .= $this->rewriteEntry($k, $v2); } // END - foreach @@ -396,7 +410,7 @@ class CacheSystem { } // END - foreach } else { // Cannot write array! - addFatalMessage(__METHOD__, __LINE__, '(' . __LINE__ . '): {--CACHE_PROBLEMS_DETECTED'); + reportBug(__METHOD__, __LINE__, 'Problem with cache detected: pointer is not resource! pointer[]=' . gettype($this->pointer)); } } @@ -433,7 +447,7 @@ class CacheSystem { } // END - if } else { // Cannot write to cache! - addFatalMessage(__METHOD__, __LINE__, '(' . __LINE__ . '): {--CACHE_PROBLEMS_DETECTED'); + reportBug(__METHOD__, __LINE__, 'Problem with cache detected: Unexpected status ' . $this->status[$this->name]); } } @@ -452,14 +466,14 @@ class CacheSystem { // Write cache line to file $this->writeLine($this->rewriteEntry($ext_name, $ext_ver, 'version', true)); } // END - if - //* DEBUG: */ debugOutput(__METHOD__ . '(' . __LINE__ . '): '.$this->name.' - '.$ext_name.'='.$ext_ver); + //* DEBUG: */ logDebugMessage(__METHOD__, __LINE__, 'name=' . $this->name . ',ext_name=' . $ext_name . ',ext_ver=' . $ext_ver); } else { // Cannot create file - addFatalMessage(__METHOD__, __LINE__, '(' . __LINE__ . '): {--CACHE_PROBLEMS_DETECTED'); + reportBug(__METHOD__, __LINE__, 'Problem with cache detected: pointer is not resource! pointer[]=' . gettype($this->pointer)); } } - // Checks wether versions from cache and extension matches + // Checks whether versions from cache and extension matches function extensionVersionMatches ($ext_name) { // Check cache if (!isset($GLOBALS[__METHOD__][$ext_name])) { @@ -476,7 +490,7 @@ class CacheSystem { // 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! + // No cache version found logDebugMessage(__METHOD__, __LINE__, 'Cache ' . $this->name . ' has missing version entry for extension ' . $ext_name . '! Purging cache...'); // Remove the cache file @@ -515,7 +529,7 @@ class CacheSystem { $line = '$this->' . $prefix . "['" . $this->name . "']['" . $key . "']" . $extender . " = '" . escapeQuotes($value) . "';"; } elseif (is_null($value)) { // Null - $line = '$this->' . $prefix . "['" . $this->name . "']['" . $key . "']" . $extender . ' = null;'; + $line = '$this->' . $prefix . "['" . $this->name . "']['" . $key . "']" . $extender . ' = NULL;'; } elseif (is_bool($value)) { // Boolean value if ($value === true) { @@ -527,7 +541,7 @@ class CacheSystem { } } elseif (isset($value[0])) { // These lines needs fixing - debug_report_bug(__METHOD__, __LINE__, 'Invalid entry with [0] found. key=' . $key); + reportBug(__METHOD__, __LINE__, 'Invalid entry with [0] found. key=' . $key); } else { // Non-string $line = '$this->' . $prefix . "['" . $this->name . "']['" . $key . "']" . $extender . ' = ' . $value . ';'; @@ -547,7 +561,7 @@ class CacheSystem { $this->statusCode = $status; } - // Checks wether the current cache file is readable + // Checks whether the current cache file is readable function isCacheReadable () { // Array entry found? if (!isset($this->readable[$this->name])) { @@ -562,7 +576,7 @@ class CacheSystem { // Cloning not allowed function __clone () { // Please do not clone this class - debug_report_bug(__METHOD__, __LINE__, 'Cloning of this class is not allowed.'); + reportBug(__METHOD__, __LINE__, 'Cloning of this class is not allowed.'); } } // END - class