/** * @param ParserOutput $parserOutput * @param WikiPage $page * @param ParserOptions $popts * @param string $cacheTime Time when the cache was generated * @param int $revId Revision ID that was parsed */ public function save($parserOutput, $page, $popts, $cacheTime = null, $revId = null) { $expire = $parserOutput->getCacheExpiry(); if ($expire > 0) { $cacheTime = $cacheTime ?: wfTimestampNow(); if (!$revId) { $revision = $page->getRevision(); $revId = $revision ? $revision->getId() : null; } $optionsKey = new CacheTime(); $optionsKey->mUsedOptions = $parserOutput->getUsedOptions(); $optionsKey->updateCacheExpiry($expire); $optionsKey->setCacheTime($cacheTime); $parserOutput->setCacheTime($cacheTime); $optionsKey->setCacheRevisionId($revId); $parserOutput->setCacheRevisionId($revId); $parserOutputKey = $this->getParserOutputKey($page, $popts->optionsHash($optionsKey->mUsedOptions, $page->getTitle())); // Save the timestamp so that we don't have to load the revision row on view $parserOutput->setTimestamp($page->getTimestamp()); $msg = "Saved in parser cache with key {$parserOutputKey}" . " and timestamp {$cacheTime}" . " and revision id {$revId}" . "\n"; $parserOutput->mText .= "\n<!-- {$msg} -->\n"; wfDebug($msg); // Save the parser output $this->mMemc->set($parserOutputKey, $parserOutput, $expire); // ...and its pointer $this->mMemc->set($this->getOptionsKey($page), $optionsKey, $expire); Hooks::run('ParserCacheSaveComplete', array($this, $parserOutput, $page->getTitle(), $popts, $revId)); } else { wfDebug("Parser output was marked as uncacheable and has not been saved.\n"); } }
<?php /** * memcached diagnostic tool * * @file * @todo document * @ingroup Maintenance */ /** */ require_once dirname(__FILE__) . '/commandLine.inc'; $mcc = new MWMemcached(array('persistant' => true)); $mcc->set_servers($wgMemCachedServers); # $mcc->set_debug( true ); function mccShowHelp($command) { $commandList = array('get' => 'grabs something', 'getsock' => 'lists sockets', 'set' => 'changes something', 'delete' => 'deletes something', 'history' => 'show command line history', 'server' => 'show current memcached server', 'dumpmcc' => 'shows the whole thing', 'exit' => 'exit mcc', 'quit' => 'exit mcc', 'help' => 'help about a command'); if (!$command) { $command = 'fullhelp'; } if ($command === 'fullhelp') { $max_cmd_len = max(array_map('strlen', array_keys($commandList))); foreach ($commandList as $cmd => $desc) { printf("%-{$max_cmd_len}s: %s\n", $cmd, $desc); } } elseif (isset($commandList[$command])) { print "{$command}: {$commandList[$command]}\n"; } else { print "{$command}: command does not exist or no help for it\n"; } }
public function add($key, $value, $exptime = 0) { return $this->client->add($this->validateKeyEncoding($key), $value, $this->fixExpiry($exptime)); }