本文整理汇总了PHP中ParserOptions::legacyOptions方法的典型用法代码示例。如果您正苦于以下问题:PHP ParserOptions::legacyOptions方法的具体用法?PHP ParserOptions::legacyOptions怎么用?PHP ParserOptions::legacyOptions使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParserOptions
的用法示例。
在下文中一共展示了ParserOptions::legacyOptions方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getKey
/**
* Generates a key for caching the given article considering
* the given parser options.
*
* @note Which parser options influence the cache key
* is controlled via ParserOutput::recordOption() or
* ParserOptions::addExtraKey().
*
* @note Used by Article to provide a unique id for the PoolCounter.
* It would be preferable to have this code in get()
* instead of having Article looking in our internals.
*
* @todo Document parameter $useOutdated
*
* @param WikiPage $article
* @param ParserOptions $popts
* @param bool $useOutdated (default true)
* @return bool|mixed|string
*/
public function getKey($article, $popts, $useOutdated = true)
{
global $wgCacheEpoch;
if ($popts instanceof User) {
wfWarn("Use of outdated prototype ParserCache::getKey( &\$article, &\$user )\n");
$popts = ParserOptions::newFromUser($popts);
}
// Determine the options which affect this article
$optionsKey = $this->mMemc->get($this->getOptionsKey($article));
if ($optionsKey instanceof CacheTime) {
if (!$useOutdated && $optionsKey->expired($article->getTouched())) {
wfIncrStats("pcache.miss.expired");
$cacheTime = $optionsKey->getCacheTime();
wfDebug("Parser options key expired, touched " . $article->getTouched() . ", epoch {$wgCacheEpoch}, cached {$cacheTime}\n");
return false;
} elseif ($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");
return false;
}
// $optionsKey->mUsedOptions is set by save() by calling ParserOutput::getUsedOptions()
$usedOptions = $optionsKey->mUsedOptions;
wfDebug("Parser cache options found.\n");
} else {
if (!$useOutdated) {
return false;
}
$usedOptions = ParserOptions::legacyOptions();
}
return $this->getParserOutputKey($article, $popts->optionsHash($usedOptions, $article->getTitle()));
}
示例2: get
/**
* Retrieve the ParserOutput from ParserCache.
* false if not found or outdated.
*
* @param $article Article
* @param $popts ParserOptions
* @param $useOutdated
*
* @return ParserOutput|false
*/
public function get($article, $popts, $useOutdated = false)
{
global $wgCacheEpoch;
wfProfileIn(__METHOD__);
$canCache = $article->checkTouched();
if (!$canCache) {
// It's a redirect now
wfProfileOut(__METHOD__);
return false;
}
$touched = $article->getTouched();
$parserOutputKey = $this->getKey($article, $popts, $useOutdated);
if ($parserOutputKey === false) {
wfIncrStats('pcache_miss_absent');
wfProfileOut(__METHOD__);
return false;
}
$value = $this->mMemc->get($parserOutputKey);
if (self::try116cache && !$value && strpos($value, '*') !== -1) {
wfDebug("New format parser cache miss.\n");
$parserOutputKey = $this->getParserOutputKey($article, $popts->optionsHash(ParserOptions::legacyOptions(), $article->getTitle()));
$value = $this->mMemc->get($parserOutputKey);
}
if (!$value) {
wfDebug("ParserOutput cache miss.\n");
wfIncrStats("pcache_miss_absent");
wfProfileOut(__METHOD__);
return false;
}
wfDebug("ParserOutput cache found.\n");
// The edit section preference may not be the appropiate one in
// the ParserOutput, as we are not storing it in the parsercache
// key. Force it here. See bug 31445.
$value->setEditSectionTokens($popts->getEditSection());
if (!$useOutdated && $value->expired($touched)) {
wfIncrStats("pcache_miss_expired");
$cacheTime = $value->getCacheTime();
wfDebug("ParserOutput key expired, touched {$touched}, epoch {$wgCacheEpoch}, cached {$cacheTime}\n");
$value = false;
} else {
wfIncrStats("pcache_hit");
}
wfProfileOut(__METHOD__);
return $value;
}
示例3: getCacheKey
/**
* Get a cache key.
*
* @param $formId or null
* @param Parser $parser or null
* @return String
*/
public static function getCacheKey( $formId = null, &$parser = null ) {
if ( is_null( $formId ) ) {
return wfMemcKey( 'ext.SemanticForms.formdefinition' );
} elseif ( is_null( $parser ) ) {
return wfMemcKey( 'ext.SemanticForms.formdefinition', $formId );
} else {
if ( method_exists( 'ParserOptions', 'optionsHash' ) ) { // MW 1.17+
$optionsHash = $parser->getOptions()->optionsHash( ParserOptions::legacyOptions() );
} else { // MW 1.16
$optionsHash = $parser->getOptions()->mUser->getPageRenderingHash();
}
return wfMemcKey(
'ext.SemanticForms.formdefinition', $formId, $optionsHash
);
}
}
示例4: getCacheKey
/**
* Get a cache key.
*
* @param $formId or null
* @param Parser $parser or null
* @return String
*/
public static function getCacheKey($formId = null, &$parser = null)
{
if (is_null($formId)) {
return wfMemcKey('ext.SemanticForms.formdefinition');
} elseif (is_null($parser)) {
return wfMemcKey('ext.SemanticForms.formdefinition', $formId);
} else {
$optionsHash = $parser->getOptions()->optionsHash(ParserOptions::legacyOptions());
return wfMemcKey('ext.SemanticForms.formdefinition', $formId, $optionsHash);
}
}
示例5: get
/**
* Retrieve the ParserOutput from ParserCache.
* false if not found or outdated.
*/
public function get($article, $popts, $useOutdated = false)
{
global $wgCacheEpoch;
wfProfileIn(__METHOD__);
$canCache = $article->checkTouched();
if (!$canCache) {
// It's a redirect now
wfProfileOut(__METHOD__);
return false;
}
$touched = $article->getTouched();
$parserOutputKey = $this->getKey($article, $popts, $useOutdated);
if ($parserOutputKey === false) {
wfProfileOut(__METHOD__);
return false;
}
$value = $this->mMemc->get($parserOutputKey);
if (self::try116cache && !$value && strpos($value, '*') !== -1) {
wfDebug("New format parser cache miss.\n");
$parserOutputKey = $this->getParserOutputKey($article, $popts->optionsHash(ParserOptions::legacyOptions()));
$value = $this->mMemc->get($parserOutputKey);
}
if (!$value) {
wfDebug("Parser cache miss.\n");
wfIncrStats("pcache_miss_absent");
wfProfileOut(__METHOD__);
return false;
}
wfDebug("Found.\n");
if (!$useOutdated && $value->expired($touched)) {
wfIncrStats("pcache_miss_expired");
$cacheTime = $value->getCacheTime();
wfDebug("ParserOutput key expired, touched {$touched}, epoch {$wgCacheEpoch}, cached {$cacheTime}\n");
$value = false;
} else {
if (isset($value->mTimestamp)) {
$article->mTimestamp = $value->mTimestamp;
}
wfIncrStats("pcache_hit");
}
wfProfileOut(__METHOD__);
return $value;
}