diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2008-12-15 18:02:47 +0100 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2008-12-15 18:02:47 +0100 |
commit | 396b28f3d881f5debd888ba9bb9b47c2d478a76f (patch) | |
tree | 10d6e1a721ee4ef69def34a57f02d7eb3fc9e31e /includes/CacheManager.php | |
parent | 0be4d3ccf6c4fe98a72704f9463ecdea2ee5e615 (diff) |
update to Mediawiki 1.13.3; some cleanups
Diffstat (limited to 'includes/CacheManager.php')
-rw-r--r-- | includes/CacheManager.php | 159 |
1 files changed, 0 insertions, 159 deletions
diff --git a/includes/CacheManager.php b/includes/CacheManager.php deleted file mode 100644 index b9e307f4..00000000 --- a/includes/CacheManager.php +++ /dev/null @@ -1,159 +0,0 @@ -<?php -/** - * Contain the CacheManager class - * @package MediaWiki - * @subpackage Cache - */ - -/** - * Handles talking to the file cache, putting stuff in and taking it back out. - * Mostly called from Article.php, also from DatabaseFunctions.php for the - * emergency abort/fallback to cache. - * - * Global options that affect this module: - * $wgCachePages - * $wgCacheEpoch - * $wgUseFileCache - * $wgFileCacheDirectory - * $wgUseGzip - * @package MediaWiki - */ -class CacheManager { - var $mTitle, $mFileCache; - - function CacheManager( &$title ) { - $this->mTitle =& $title; - $this->mFileCache = ''; - } - - function fileCacheName() { - global $wgFileCacheDirectory; - if( !$this->mFileCache ) { - $key = $this->mTitle->getPrefixedDbkey(); - $hash = md5( $key ); - $key = str_replace( '.', '%2E', urlencode( $key ) ); - - $hash1 = substr( $hash, 0, 1 ); - $hash2 = substr( $hash, 0, 2 ); - $this->mFileCache = "{$wgFileCacheDirectory}/{$hash1}/{$hash2}/{$key}.html"; - - if($this->useGzip()) - $this->mFileCache .= '.gz'; - - wfDebug( " fileCacheName() - {$this->mFileCache}\n" ); - } - return $this->mFileCache; - } - - function isFileCached() { - return file_exists( $this->fileCacheName() ); - } - - function fileCacheTime() { - return wfTimestamp( TS_MW, filemtime( $this->fileCacheName() ) ); - } - - function isFileCacheGood( $timestamp ) { - global $wgCacheEpoch; - - if( !$this->isFileCached() ) return false; - - $cachetime = $this->fileCacheTime(); - $good = (( $timestamp <= $cachetime ) && - ( $wgCacheEpoch <= $cachetime )); - - wfDebug(" isFileCacheGood() - cachetime $cachetime, touched {$timestamp} epoch {$wgCacheEpoch}, good $good\n"); - return $good; - } - - function useGzip() { - global $wgUseGzip; - return $wgUseGzip; - } - - /* In handy string packages */ - function fetchRawText() { - return file_get_contents( $this->fileCacheName() ); - } - - function fetchPageText() { - if( $this->useGzip() ) { - /* Why is there no gzfile_get_contents() or gzdecode()? */ - return implode( '', gzfile( $this->fileCacheName() ) ); - } else { - return $this->fetchRawText(); - } - } - - /* Working directory to/from output */ - function loadFromFileCache() { - global $wgOut, $wgMimeType, $wgOutputEncoding, $wgContLanguageCode; - wfDebug(" loadFromFileCache()\n"); - - $filename=$this->fileCacheName(); - $wgOut->sendCacheControl(); - - header( "Content-type: $wgMimeType; charset={$wgOutputEncoding}" ); - header( "Content-language: $wgContLanguageCode" ); - - if( $this->useGzip() ) { - if( wfClientAcceptsGzip() ) { - header( 'Content-Encoding: gzip' ); - } else { - /* Send uncompressed */ - readgzfile( $filename ); - return; - } - } - readfile( $filename ); - } - - function checkCacheDirs() { - $filename = $this->fileCacheName(); - $mydir2=substr($filename,0,strrpos($filename,'/')); # subdirectory level 2 - $mydir1=substr($mydir2,0,strrpos($mydir2,'/')); # subdirectory level 1 - - if(!file_exists($mydir1)) { mkdir($mydir1,0775); } # create if necessary - if(!file_exists($mydir2)) { mkdir($mydir2,0775); } - } - - function saveToFileCache( $origtext ) { - $text = $origtext; - if(strcmp($text,'') == 0) return ''; - - wfDebug(" saveToFileCache()\n", false); - - $this->checkCacheDirs(); - - $f = fopen( $this->fileCacheName(), 'w' ); - if($f) { - $now = wfTimestampNow(); - if( $this->useGzip() ) { - $rawtext = str_replace( '</html>', - '<!-- Cached/compressed '.$now." -->\n</html>", - $text ); - $text = gzencode( $rawtext ); - } else { - $text = str_replace( '</html>', - '<!-- Cached '.$now." -->\n</html>", - $text ); - } - fwrite( $f, $text ); - fclose( $f ); - if( $this->useGzip() ) { - if( wfClientAcceptsGzip() ) { - header( 'Content-Encoding: gzip' ); - return $text; - } else { - return $rawtext; - } - } else { - return $text; - } - } - return $text; - } - -} - -?> |