public function loadFromFileCache() {
global $wgOut, $wgMimeType, $wgOutputEncoding, $wgContLanguageCode;
wfDebug(" loadFromFileCache()\n");
-
$filename = $this->fileCacheName();
// Raw pages should handle cache control on their own,
// even when using file cache. This reduces hits from clients.
- if( $this->mType !== 'raw' )
+ if( $this->mType !== 'raw' ) {
$wgOut->sendCacheControl();
-
- header( "Content-type: $wgMimeType; charset={$wgOutputEncoding}" );
- header( "Content-language: $wgContLanguageCode" );
+ header( "Content-Type: $wgMimeType; charset={$wgOutputEncoding}" );
+ header( "Content-Language: $wgContLanguageCode" );
+ }
if( $this->useGzip() ) {
if( wfClientAcceptsGzip() ) {
}
}
readfile( $filename );
+ $wgOut->disable(); // tell $wgOut that output is taken care of
}
protected function checkCacheDirs() {
wfMkdirParents( $mydir2 );
}
- public function saveToFileCache( $origtext ) {
+ public function saveToFileCache( $text ) {
global $wgUseFileCache;
- if( !$wgUseFileCache ) {
- return $origtext; // return to output
+ if( !$wgUseFileCache || strlen( $text ) < 512 ) {
+ // Disabled or empty/broken output (OOM and PHP errors)
+ return $text;
}
- $text = $origtext;
- if( strcmp($text,'') == 0 ) return '';
wfDebug(" saveToFileCache()\n", false);
public static function clearFileCache( $title ) {
global $wgUseFileCache;
if( !$wgUseFileCache ) return false;
- $fc = new self( $title, '' );
+ $fc = new self( $title, 'view' );
@unlink( $fc->fileCacheName() );
$fc = new self( $title, 'raw' );
@unlink( $fc->fileCacheName() );