當前位置: 首頁>>代碼示例>>PHP>>正文


PHP ClassMetadataInfo::setShardKey方法代碼示例

本文整理匯總了PHP中Doctrine\ODM\MongoDB\Mapping\ClassMetadataInfo::setShardKey方法的典型用法代碼示例。如果您正苦於以下問題:PHP ClassMetadataInfo::setShardKey方法的具體用法?PHP ClassMetadataInfo::setShardKey怎麽用?PHP ClassMetadataInfo::setShardKey使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Doctrine\ODM\MongoDB\Mapping\ClassMetadataInfo的用法示例。


在下文中一共展示了ClassMetadataInfo::setShardKey方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: setShardKey

 /**
  * @param ClassMetadataInfo $class
  * @param ODM\ShardKey      $shardKey
  *
  * @throws MappingException
  */
 private function setShardKey(ClassMetadataInfo $class, ODM\ShardKey $shardKey)
 {
     $options = array();
     $allowed = array('unique', 'numInitialChunks');
     foreach ($allowed as $name) {
         if (isset($shardKey->{$name})) {
             $options[$name] = $shardKey->{$name};
         }
     }
     $class->setShardKey($shardKey->keys, $options);
 }
開發者ID:doctrine,項目名稱:mongodb-odm,代碼行數:17,代碼來源:AnnotationDriver.php

示例2: setShardKey

 private function setShardKey(ClassMetadataInfo $class, \SimpleXmlElement $xmlShardkey)
 {
     $attributes = $xmlShardkey->attributes();
     $keys = array();
     $options = array();
     foreach ($xmlShardkey->{'key'} as $key) {
         $keys[(string) $key['name']] = isset($key['order']) ? (string) $key['order'] : 'asc';
     }
     if (isset($attributes['unique'])) {
         $options['unique'] = 'true' === (string) $attributes['unique'];
     }
     if (isset($attributes['numInitialChunks'])) {
         $options['numInitialChunks'] = (int) $attributes['numInitialChunks'];
     }
     if (isset($xmlShardkey->{'option'})) {
         foreach ($xmlShardkey->{'option'} as $option) {
             $value = (string) $option['value'];
             if ($value === 'true') {
                 $value = true;
             } elseif ($value === 'false') {
                 $value = false;
             } elseif (is_numeric($value)) {
                 $value = preg_match('/^[-]?\\d+$/', $value) ? (int) $value : (double) $value;
             }
             $options[(string) $option['name']] = $value;
         }
     }
     $class->setShardKey($keys, $options);
 }
開發者ID:briareos,項目名稱:mongodb-odm,代碼行數:29,代碼來源:XmlDriver.php

示例3: testNoReferenceManyInShardKey

 /**
  * @expectedException \Doctrine\ODM\MongoDB\Mapping\MappingException
  * @expectedExceptionMessage No multikey indexes are allowed in the shard key
  */
 public function testNoReferenceManyInShardKey()
 {
     $cm = new ClassMetadataInfo('stdClass');
     $cm->mapManyEmbedded(['fieldName' => 'referenceMany']);
     $cm->setShardKey(array('referenceMany' => 1));
 }
開發者ID:alcaeus,項目名稱:mongodb-odm,代碼行數:10,代碼來源:ClassMetadataInfoTest.php

示例4: setShardKey

 private function setShardKey(ClassMetadataInfo $class, array $shardKey)
 {
     $keys = $shardKey['keys'];
     $options = array();
     if (isset($shardKey['options'])) {
         $allowed = array('unique', 'numInitialChunks');
         foreach ($shardKey['options'] as $name => $value) {
             if (!in_array($name, $allowed, true)) {
                 continue;
             }
             $options[$name] = $value;
         }
     }
     $class->setShardKey($keys, $options);
 }
開發者ID:doctrine,項目名稱:mongodb-odm,代碼行數:15,代碼來源:YamlDriver.php

示例5: testEmbeddedDocumentCantHaveShardKey

 /**
  * @expectedException \Doctrine\ODM\MongoDB\Mapping\MappingException
  * @expectedExceptionMessage Embedded document can't have shard key: stdClass
  */
 public function testEmbeddedDocumentCantHaveShardKey()
 {
     $cm = new ClassMetadataInfo('stdClass');
     $cm->isEmbeddedDocument = true;
     $cm->setShardKey(array('id' => 'asc'));
 }
開發者ID:briareos,項目名稱:mongodb-odm,代碼行數:10,代碼來源:ClassMetadataInfoTest.php


注:本文中的Doctrine\ODM\MongoDB\Mapping\ClassMetadataInfo::setShardKey方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。