当前位置: 首页>>代码示例>>PHP>>正文


PHP ApiResult::setPreserveKeysList方法代码示例

本文整理汇总了PHP中ApiResult::setPreserveKeysList方法的典型用法代码示例。如果您正苦于以下问题:PHP ApiResult::setPreserveKeysList方法的具体用法?PHP ApiResult::setPreserveKeysList怎么用?PHP ApiResult::setPreserveKeysList使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ApiResult的用法示例。


在下文中一共展示了ApiResult::setPreserveKeysList方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: sanitizeArrayForAPI

 /**
  * Makes sure the given array is a valid API response fragment
  * @param array $arr
  */
 protected function sanitizeArrayForAPI(&$arr)
 {
     if (!is_array($arr)) {
         return;
     }
     $counter = 1;
     foreach ($arr as $key => &$value) {
         $sanitizedKey = $this->sanitizeKeyForAPI($key);
         if ($sanitizedKey !== $key) {
             if (isset($arr[$sanitizedKey])) {
                 // Make the sanitized keys hopefully unique.
                 // To make it definitely unique would be too much effort, given that
                 // sanitizing is only needed for misformatted metadata anyway, but
                 // this at least covers the case when $arr is numeric.
                 $sanitizedKey .= $counter;
                 ++$counter;
             }
             $arr[$sanitizedKey] = $arr[$key];
             unset($arr[$key]);
         }
         if (is_array($value)) {
             $this->sanitizeArrayForAPI($value);
         }
     }
     // Handle API metadata keys (particularly "_type")
     $keys = array_filter(array_keys($arr), 'ApiResult::isMetadataKey');
     if ($keys) {
         ApiResult::setPreserveKeysList($arr, $keys);
     }
 }
开发者ID:claudinec,项目名称:galan-wiki,代码行数:34,代码来源:FormatMetadata.php

示例2: testMetadata

 /**
  * @covers ApiResult
  */
 public function testMetadata()
 {
     $arr = array('foo' => array('bar' => array()));
     $result = new ApiResult(8388608);
     $result->addValue(null, 'foo', array('bar' => array()));
     $expect = array('foo' => array('bar' => array(ApiResult::META_INDEXED_TAG_NAME => 'ritn', ApiResult::META_TYPE => 'default'), ApiResult::META_INDEXED_TAG_NAME => 'ritn', ApiResult::META_TYPE => 'default'), ApiResult::META_SUBELEMENTS => array('foo', 'bar'), ApiResult::META_INDEXED_TAG_NAME => 'itn', ApiResult::META_PRESERVE_KEYS => array('foo', 'bar'), ApiResult::META_TYPE => 'array');
     ApiResult::setSubelementsList($arr, 'foo');
     ApiResult::setSubelementsList($arr, array('bar', 'baz'));
     ApiResult::unsetSubelementsList($arr, 'baz');
     ApiResult::setIndexedTagNameRecursive($arr, 'ritn');
     ApiResult::setIndexedTagName($arr, 'itn');
     ApiResult::setPreserveKeysList($arr, 'foo');
     ApiResult::setPreserveKeysList($arr, array('bar', 'baz'));
     ApiResult::unsetPreserveKeysList($arr, 'baz');
     ApiResult::setArrayTypeRecursive($arr, 'default');
     ApiResult::setArrayType($arr, 'array');
     $this->assertSame($expect, $arr);
     $result->addSubelementsList(null, 'foo');
     $result->addSubelementsList(null, array('bar', 'baz'));
     $result->removeSubelementsList(null, 'baz');
     $result->addIndexedTagNameRecursive(null, 'ritn');
     $result->addIndexedTagName(null, 'itn');
     $result->addPreserveKeysList(null, 'foo');
     $result->addPreserveKeysList(null, array('bar', 'baz'));
     $result->removePreserveKeysList(null, 'baz');
     $result->addArrayTypeRecursive(null, 'default');
     $result->addArrayType(null, 'array');
     $this->assertEquals($expect, $result->getResultData());
     $arr = array('foo' => array('bar' => array()));
     $expect = array('foo' => array('bar' => array(ApiResult::META_TYPE => 'kvp', ApiResult::META_KVP_KEY_NAME => 'key'), ApiResult::META_TYPE => 'kvp', ApiResult::META_KVP_KEY_NAME => 'key'), ApiResult::META_TYPE => 'BCkvp', ApiResult::META_KVP_KEY_NAME => 'bc');
     ApiResult::setArrayTypeRecursive($arr, 'kvp', 'key');
     ApiResult::setArrayType($arr, 'BCkvp', 'bc');
     $this->assertSame($expect, $arr);
 }
开发者ID:ucfengzhun,项目名称:mediawiki,代码行数:37,代码来源:ApiResultTest.php


注:本文中的ApiResult::setPreserveKeysList方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。