X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fparser%2FCacheTime.php;h=e9840a424087237e88a190ae3dd5d2850429affd;hb=a1ef77b2d80830fbcb617a83961d78cff9d6e384;hp=26d5bdd3f94c71f6d1985397dfecff168ef7547f;hpb=7f87ffa3b5bb3d2f18fe45416ff6da0a3f10cfd2;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/parser/CacheTime.php b/includes/parser/CacheTime.php index 26d5bdd3f9..e9840a4240 100644 --- a/includes/parser/CacheTime.php +++ b/includes/parser/CacheTime.php @@ -38,13 +38,13 @@ class CacheTime { public $mVersion = Parser::VERSION; /** - * @var string|int TS_MW timestamp when this object was generated, or -1 for uncacheable. Used + * @var string|int TS_MW timestamp when this object was generated, or -1 for not cacheable. Used * in ParserCache. */ public $mCacheTime = ''; /** - * @var int|null Seconds after which the object should expire, use 0 for uncacheable. Used in + * @var int|null Seconds after which the object should expire, use 0 for not cacheable. Used in * ParserCache. */ public $mCacheExpiry = null; @@ -58,7 +58,11 @@ class CacheTime { * @return string TS_MW timestamp */ public function getCacheTime() { - return wfTimestamp( TS_MW, $this->mCacheTime ); + // NOTE: keep support for undocumented used of -1 to mean "not cacheable". + if ( $this->mCacheTime === '' ) { + $this->mCacheTime = MWTimestamp::now(); + } + return $this->mCacheTime; } /** @@ -68,6 +72,11 @@ class CacheTime { * @return string */ public function setCacheTime( $t ) { + // NOTE: keep support for undocumented used of -1 to mean "not cacheable". + if ( is_string( $t ) && $t !== '-1' ) { + $t = MWTimestamp::convert( TS_MW, $t ); + } + return wfSetVar( $this->mCacheTime, $t ); } @@ -120,9 +129,10 @@ class CacheTime { public function getCacheExpiry() { global $wgParserCacheExpireTime; + // NOTE: keep support for undocumented used of -1 to mean "not cacheable". if ( $this->mCacheTime < 0 ) { return 0; - } // old-style marker for "not cacheable" + } $expire = $this->mCacheExpiry; @@ -157,11 +167,12 @@ class CacheTime { public function expired( $touched ) { global $wgCacheEpoch; - return !$this->isCacheable() // parser says it's uncacheable + $expiry = MWTimestamp::convert( TS_MW, MWTimestamp::time() - $this->getCacheExpiry() ); + + return !$this->isCacheable() // parser says it's not cacheable || $this->getCacheTime() < $touched || $this->getCacheTime() <= $wgCacheEpoch - || $this->getCacheTime() < - wfTimestamp( TS_MW, time() - $this->getCacheExpiry() ) // expiry period has passed + || $this->getCacheTime() < $expiry // expiry period has passed || !isset( $this->mVersion ) || version_compare( $this->mVersion, Parser::VERSION, "lt" ); }