X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fparser%2FParserCache.php;h=c6265a7ccda21d7e400cac14269b7c32d46d460d;hb=c5f68ec77aa526dd77c9daec8f88a3f63ef75948;hp=bd5afaf033b84d2d93f1ac610aa9c0bf31bb5790;hpb=4b73a8b6fbb6da651af850a7d667e6e8d59e6fce;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/parser/ParserCache.php b/includes/parser/ParserCache.php index bd5afaf033..c6265a7ccd 100644 --- a/includes/parser/ParserCache.php +++ b/includes/parser/ParserCache.php @@ -64,7 +64,7 @@ class ParserCache { global $wgRequest; // idhash seem to mean 'page id' + 'rendering hash' (r3710) - $pageid = $article->getID(); + $pageid = $article->getId(); $renderkey = (int)( $wgRequest->getVal( 'action' ) == 'render' ); $key = wfMemcKey( 'pcache', 'idhash', "{$pageid}-{$renderkey}!{$hash}" ); @@ -76,7 +76,7 @@ class ParserCache { * @return mixed|string */ protected function getOptionsKey( $article ) { - $pageid = $article->getID(); + $pageid = $article->getId(); return wfMemcKey( 'pcache', 'idoptions', "{$pageid}" ); } @@ -146,14 +146,17 @@ class ParserCache { if ( !$useOutdated && $optionsKey->expired( $article->getTouched() ) ) { wfIncrStats( "pcache.miss.expired" ); $cacheTime = $optionsKey->getCacheTime(); - wfDebug( "Parser options key expired, touched " . $article->getTouched() + wfDebugLog( "ParserCache", + "Parser options key expired, touched " . $article->getTouched() . ", epoch $wgCacheEpoch, cached $cacheTime\n" ); return false; - } elseif ( $optionsKey->isDifferentRevision( $article->getLatest() ) ) { + } elseif ( !$useOutdated && $optionsKey->isDifferentRevision( $article->getLatest() ) ) { wfIncrStats( "pcache.miss.revid" ); $revId = $article->getLatest(); $cachedRevId = $optionsKey->getCacheRevisionId(); - wfDebug( "ParserOutput key is for an old revision, latest $revId, cached $cachedRevId\n" ); + wfDebugLog( "ParserCache", + "ParserOutput key is for an old revision, latest $revId, cached $cachedRevId\n" + ); return false; } @@ -201,6 +204,7 @@ class ParserCache { } $casToken = null; + /** @var ParserOutput $value */ $value = $this->mMemc->get( $parserOutputKey, $casToken, BagOStuff::READ_VERIFIED ); if ( !$value ) { wfDebug( "ParserOutput cache miss.\n" ); @@ -222,14 +226,15 @@ class ParserCache { if ( !$useOutdated && $value->expired( $touched ) ) { wfIncrStats( "pcache.miss.expired" ); $cacheTime = $value->getCacheTime(); - wfDebug( "ParserOutput key expired, touched $touched, " + wfDebugLog( "ParserCache", + "ParserOutput key expired, touched $touched, " . "epoch $wgCacheEpoch, cached $cacheTime\n" ); $value = false; - } elseif ( $value->isDifferentRevision( $article->getLatest() ) ) { + } elseif ( !$useOutdated && $value->isDifferentRevision( $article->getLatest() ) ) { wfIncrStats( "pcache.miss.revid" ); $revId = $article->getLatest(); $cachedRevId = $value->getCacheRevisionId(); - wfDebug( + wfDebugLog( "ParserCache", "ParserOutput key is for an old revision, latest $revId, cached $cachedRevId\n" ); $value = false; @@ -237,7 +242,7 @@ class ParserCache { Hooks::run( 'RejectParserCacheValue', [ $value, $wikiPage, $popts ] ) === false ) { wfIncrStats( 'pcache.miss.rejected' ); - wfDebug( + wfDebugLog( "ParserCache", "ParserOutput key valid, but rejected by RejectParserCacheValue hook handler.\n" ); $value = false; @@ -257,7 +262,7 @@ class ParserCache { */ public function save( $parserOutput, $page, $popts, $cacheTime = null, $revId = null ) { $expire = $parserOutput->getCacheExpiry(); - if ( $expire > 0 ) { + if ( $expire > 0 && !$this->mMemc instanceof EmptyBagOStuff ) { $cacheTime = $cacheTime ?: wfTimestampNow(); if ( !$revId ) { $revision = $page->getRevision(); @@ -297,7 +302,7 @@ class ParserCache { 'ParserCacheSaveComplete', [ $this, $parserOutput, $page->getTitle(), $popts, $revId ] ); - } else { + } elseif ( $expire <= 0 ) { wfDebug( "Parser output was marked as uncacheable and has not been saved.\n" ); } }