本文整理汇总了PHP中ApiResult::stripMetadataNonRecursive方法的典型用法代码示例。如果您正苦于以下问题:PHP ApiResult::stripMetadataNonRecursive方法的具体用法?PHP ApiResult::stripMetadataNonRecursive怎么用?PHP ApiResult::stripMetadataNonRecursive使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ApiResult
的用法示例。
在下文中一共展示了ApiResult::stripMetadataNonRecursive方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: outputGeneralPageInfo
/**
* Appends an element for each page in the current pageSet with the
* most general information (id, title), plus any title normalizations
* and missing or invalid title/pageids/revids.
*/
private function outputGeneralPageInfo()
{
$pageSet = $this->getPageSet();
$result = $this->getResult();
// We can't really handle max-result-size failure here, but we need to
// check anyway in case someone set the limit stupidly low.
$fit = true;
$values = $pageSet->getNormalizedTitlesAsResult($result);
if ($values) {
$fit = $fit && $result->addValue('query', 'normalized', $values);
}
$values = $pageSet->getConvertedTitlesAsResult($result);
if ($values) {
$fit = $fit && $result->addValue('query', 'converted', $values);
}
$values = $pageSet->getInterwikiTitlesAsResult($result, $this->mParams['iwurl']);
if ($values) {
$fit = $fit && $result->addValue('query', 'interwiki', $values);
}
$values = $pageSet->getRedirectTitlesAsResult($result);
if ($values) {
$fit = $fit && $result->addValue('query', 'redirects', $values);
}
$values = $pageSet->getMissingRevisionIDsAsResult($result);
if ($values) {
$fit = $fit && $result->addValue('query', 'badrevids', $values);
}
// Page elements
$pages = array();
// Report any missing titles
foreach ($pageSet->getMissingTitles() as $fakeId => $title) {
$vals = array();
ApiQueryBase::addTitleInfo($vals, $title);
$vals['missing'] = true;
$pages[$fakeId] = $vals;
}
// Report any invalid titles
foreach ($pageSet->getInvalidTitlesAndReasons() as $fakeId => $data) {
$pages[$fakeId] = $data + array('invalid' => true);
}
// Report any missing page ids
foreach ($pageSet->getMissingPageIDs() as $pageid) {
$pages[$pageid] = array('pageid' => $pageid, 'missing' => true);
}
// Report special pages
/** @var $title Title */
foreach ($pageSet->getSpecialTitles() as $fakeId => $title) {
$vals = array();
ApiQueryBase::addTitleInfo($vals, $title);
$vals['special'] = true;
if ($title->isSpecialPage() && !SpecialPageFactory::exists($title->getDBkey())) {
$vals['missing'] = true;
} elseif ($title->getNamespace() == NS_MEDIA && !wfFindFile($title)) {
$vals['missing'] = true;
}
$pages[$fakeId] = $vals;
}
// Output general page information for found titles
foreach ($pageSet->getGoodTitles() as $pageid => $title) {
$vals = array();
$vals['pageid'] = $pageid;
ApiQueryBase::addTitleInfo($vals, $title);
$pages[$pageid] = $vals;
}
if (count($pages)) {
$pageSet->populateGeneratorData($pages);
ApiResult::setArrayType($pages, 'BCarray');
if ($this->mParams['indexpageids']) {
$pageIDs = array_keys(ApiResult::stripMetadataNonRecursive($pages));
// json treats all map keys as strings - converting to match
$pageIDs = array_map('strval', $pageIDs);
ApiResult::setIndexedTagName($pageIDs, 'id');
$fit = $fit && $result->addValue('query', 'pageids', $pageIDs);
}
ApiResult::setIndexedTagName($pages, 'page');
$fit = $fit && $result->addValue('query', 'pages', $pages);
}
if (!$fit) {
$this->dieUsage('The value of $wgAPIMaxResultSize on this wiki is ' . 'too small to hold basic result information', 'badconfig');
}
if ($this->mParams['export']) {
$this->doExport($pageSet, $result);
}
}
示例2: testUtilityFunctions
/**
* @covers ApiResult
*/
public function testUtilityFunctions()
{
$arr = array('foo' => array('bar' => array('_dummy' => 'foobaz'), 'bar2' => (object) array('_dummy' => 'foobaz'), 'x' => 'ok', '_dummy' => 'foobaz'), 'foo2' => (object) array('bar' => array('_dummy' => 'foobaz'), 'bar2' => (object) array('_dummy' => 'foobaz'), 'x' => 'ok', '_dummy' => 'foobaz'), ApiResult::META_SUBELEMENTS => array('foo', 'bar'), ApiResult::META_INDEXED_TAG_NAME => 'itn', ApiResult::META_PRESERVE_KEYS => array('foo', 'bar', '_dummy2', 0), ApiResult::META_TYPE => 'array', '_dummy' => 'foobaz', '_dummy2' => 'foobaz!');
$this->assertEquals(array('foo' => array('bar' => array(), 'bar2' => (object) array(), 'x' => 'ok'), 'foo2' => (object) array('bar' => array(), 'bar2' => (object) array(), 'x' => 'ok'), '_dummy2' => 'foobaz!'), ApiResult::stripMetadata($arr), 'ApiResult::stripMetadata');
$metadata = array();
$data = ApiResult::stripMetadataNonRecursive($arr, $metadata);
$this->assertEquals(array('foo' => array('bar' => array('_dummy' => 'foobaz'), 'bar2' => (object) array('_dummy' => 'foobaz'), 'x' => 'ok', '_dummy' => 'foobaz'), 'foo2' => (object) array('bar' => array('_dummy' => 'foobaz'), 'bar2' => (object) array('_dummy' => 'foobaz'), 'x' => 'ok', '_dummy' => 'foobaz'), '_dummy2' => 'foobaz!'), $data, 'ApiResult::stripMetadataNonRecursive ($data)');
$this->assertEquals(array(ApiResult::META_SUBELEMENTS => array('foo', 'bar'), ApiResult::META_INDEXED_TAG_NAME => 'itn', ApiResult::META_PRESERVE_KEYS => array('foo', 'bar', '_dummy2', 0), ApiResult::META_TYPE => 'array', '_dummy' => 'foobaz'), $metadata, 'ApiResult::stripMetadataNonRecursive ($metadata)');
$metadata = null;
$data = ApiResult::stripMetadataNonRecursive((object) $arr, $metadata);
$this->assertEquals((object) array('foo' => array('bar' => array('_dummy' => 'foobaz'), 'bar2' => (object) array('_dummy' => 'foobaz'), 'x' => 'ok', '_dummy' => 'foobaz'), 'foo2' => (object) array('bar' => array('_dummy' => 'foobaz'), 'bar2' => (object) array('_dummy' => 'foobaz'), 'x' => 'ok', '_dummy' => 'foobaz'), '_dummy2' => 'foobaz!'), $data, 'ApiResult::stripMetadataNonRecursive on object ($data)');
$this->assertEquals(array(ApiResult::META_SUBELEMENTS => array('foo', 'bar'), ApiResult::META_INDEXED_TAG_NAME => 'itn', ApiResult::META_PRESERVE_KEYS => array('foo', 'bar', '_dummy2', 0), ApiResult::META_TYPE => 'array', '_dummy' => 'foobaz'), $metadata, 'ApiResult::stripMetadataNonRecursive on object ($metadata)');
}
示例3: getEditInfo
/**
* Gets the edit token and timestamps in some ugly array structure. Needs to
* be cleaned up.
* @throws MWException
* @return \array
*/
protected function getEditInfo()
{
$params = new FauxRequest(array('action' => 'query', 'prop' => 'info|revisions', 'intoken' => 'edit', 'titles' => $this->getTitle(), 'rvprop' => 'timestamp'));
$api = new ApiMain($params);
$api->execute();
if (defined('ApiResult::META_CONTENT')) {
$data = $api->getResult()->getResultData();
} else {
$data = $api->getResultData();
}
if (!isset($data['query']['pages'])) {
throw new MWException('Api query failed');
}
$data = $data['query']['pages'];
if (defined('ApiResult::META_CONTENT')) {
$data = ApiResult::stripMetadataNonRecursive($data);
}
$data = array_shift($data);
return $data;
}