本文整理汇总了PHP中QueryPage::getPages方法的典型用法代码示例。如果您正苦于以下问题:PHP QueryPage::getPages方法的具体用法?PHP QueryPage::getPages怎么用?PHP QueryPage::getPages使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QueryPage
的用法示例。
在下文中一共展示了QueryPage::getPages方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __construct
/**
* Initialize all query page objects
*/
function __construct()
{
parent::__construct();
foreach (QueryPage::getPages() as $page) {
$class = $page[0];
if (!in_array($class, $this->manualTest)) {
$this->queryPages[$class] = new $class();
}
}
}
示例2: __construct
public function __construct(ApiQuery $query, $moduleName)
{
parent::__construct($query, $moduleName, 'qp');
// Build mapping from special page names to QueryPage classes
$uselessQueryPages = $this->getConfig()->get('APIUselessQueryPages');
$this->qpMap = array();
foreach (QueryPage::getPages() as $page) {
if (!in_array($page[1], $uselessQueryPages)) {
$this->qpMap[$page[1]] = $page[0];
}
}
}
示例3: execute
public function execute()
{
global $wgQueryCacheLimit, $wgDisableQueryPageUpdate;
$dbw = $this->getDB(DB_MASTER);
$this->doSpecialPageCacheUpdates($dbw);
foreach (QueryPage::getPages() as $page) {
list($class, $special) = $page;
$limit = isset($page[2]) ? $page[2] : null;
# --list : just show the name of pages
if ($this->hasOption('list')) {
$this->output("{$special} [QueryPage]\n");
continue;
}
if (!$this->hasOption('override') && $wgDisableQueryPageUpdate && in_array($special, $wgDisableQueryPageUpdate)) {
$this->output(sprintf("%-30s [QueryPage] disabled\n", $special));
continue;
}
$specialObj = SpecialPageFactory::getPage($special);
if (!$specialObj) {
$this->output("No such special page: {$special}\n");
exit;
}
if ($specialObj instanceof QueryPage) {
$queryPage = $specialObj;
} else {
$class = get_class($specialObj);
$this->error("{$class} is not an instance of QueryPage.\n", 1);
die;
}
if (!$this->hasOption('only') || $this->getOption('only') == $queryPage->getName()) {
$this->output(sprintf('%-30s [QueryPage] ', $special));
if ($queryPage->isExpensive()) {
$t1 = microtime(true);
# Do the query
$num = $queryPage->recache($limit === null ? $wgQueryCacheLimit : $limit);
$t2 = microtime(true);
if ($num === false) {
$this->output("FAILED: database error\n");
} else {
$this->output("got {$num} rows in ");
$elapsed = $t2 - $t1;
$hours = intval($elapsed / 3600);
$minutes = intval($elapsed % 3600 / 60);
$seconds = $elapsed - $hours * 3600 - $minutes * 60;
if ($hours) {
$this->output($hours . 'h ');
}
if ($minutes) {
$this->output($minutes . 'm ');
}
$this->output(sprintf("%.2fs\n", $seconds));
}
# Reopen any connections that have closed
if (!wfGetLB()->pingAll()) {
$this->output("\n");
do {
$this->error("Connection failed, reconnecting in 10 seconds...");
sleep(10);
} while (!wfGetLB()->pingAll());
$this->output("Reconnected\n\n");
}
# Wait for the slave to catch up
wfWaitForSlaves();
} else {
$this->output("cheap, skipped\n");
}
if ($this->hasOption('only')) {
break;
}
}
}
}