MongoDB\BSON\toPHP

(mongodb >=1.0.0)

MongoDB\BSON\toPHP β€” Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ PHP-прСдставлСниС BSON-значСния

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅

ΠœΠ΅Ρ‚ΠΎΠ΄ УБВАРЕЛ с модуля вСрсии 1.20.0, Π° Π² вСрсии 2.0 ΠΌΠ΅Ρ‚ΠΎΠ΄ ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ. ВмСсто этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° прилоТСниям Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ MongoDB\BSON\Document::toPHP().

ОписаниС

function MongoDB\BSON\toPHP(string $bson, array $typeMap = array()): array|object

ΠœΠ΅Ρ‚ΠΎΠ΄ дСсСриализуСт BSON-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ β€” Π΄Π²ΠΎΠΈΡ‡Π½ΡƒΡŽ строку β€” Π² Π΅Π³ΠΎ PHP-прСдставлСниС. Π§Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ typeMap ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ PHP-Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ BSON-массивы ΠΈ BSON-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ (ΠΊΠ°ΠΊ ΠΊΠΎΡ€Π½Π΅Π²Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ встроСнныС).

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ BSON тСхничСски ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ ΠΊΠ»ΡŽΡ‡ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ хранятся Π² Π²ΠΈΠ΄Π΅ списка ΠΏΠ°Ρ€ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅; ΠΎΠ΄Π½Π°ΠΊΠΎ прилоТСниям слСдуСт Π²ΠΎΠ·Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ создания Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² с Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Π°ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ сСрвСра ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ массивы PHP Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ потСряны ΠΏΡ€ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° BSON с ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ.

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

bson (string)
BSON-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для дСсСриализации.
typeMap (array)
ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΊΠ°Ρ€Ρ‚Ρ‹ Ρ‚ΠΈΠΏΠΎΠ².

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

ΠœΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ PHP-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сгСнСрировал ΠΏΡƒΡ‚Ρ‘ΠΌ дСсСриализации BSON-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

Ошибки

  • ΠœΠ΅Ρ‚ΠΎΠ΄ выбрасываСт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ MongoDB\Driver\Exception\InvalidArgumentException, Ссли класс Π² ΠΊΠ°Ρ€Ρ‚Π΅ Ρ‚ΠΈΠΏΠΎΠ² Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ класс Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ интСрфСйс MongoDB\BSON\Unserializable.
  • ΠœΠ΅Ρ‚ΠΎΠ΄ выбрасываСт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ MongoDB\Driver\Exception\UnexpectedValueException, Ссли Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ большС ΠΎΠ΄Π½ΠΎΠ³ΠΎ BSON-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚, Π½ΠΎ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ нСдопустимым BSON-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ, лишними Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΉ ошибкой » libbson.

Бписок измСнСний

ВСрсия ОписаниС
PECL-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ mongodb 2.0.0 Π€ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ.
PECL-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ mongodb 1.4.0 ΠœΠΎΠ΄ΡƒΠ»ΡŒ большС Π½Π΅ записываСт ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΠΆΡƒΡ€Π½Π°Π» ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Ссли Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ содСрТат ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ BSON-Ρ‚ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ поддСрТиваСтся ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ. ВмСсто этого ΠΌΠ΅Ρ‚ΠΎΠ΄ создаст ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт Ρ‚Π°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ.
PECL-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ mongodb 1.3.2 ΠœΠ΅Ρ‚ΠΎΠ΄ большС Π½Π΅ выбрасываСт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ MongoDB\Driver\Exception\UnexpectedValueException Ссли Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ содСрТат ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ BSON-Ρ‚ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ поддСрТиваСтся ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ. ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ (ΠΊΠ°ΠΊ ΠΈ Π² вСрсиях Π΄ΠΎ 1.3.0), хотя ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ записываСт ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΠΆΡƒΡ€Π½Π°Π» ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ (смотритС описаниС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ mongodb.debug).
PECL-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ mongodb 1.3.0 ΠœΠ΅Ρ‚ΠΎΠ΄ выбрасываСт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ MongoDB\Driver\Exception\UnexpectedValueException, Ссли Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ содСрТат ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ BSON-Ρ‚ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ поддСрТиваСтся ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ. РаньшС ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π» Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ прСобразования BSON-значСния Π² PHP-прСдставлСниС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ MongoDB\BSON\toPHP()

<?php

$bson
= hex2bin('0e00000010666f6f000100000000');
$value = MongoDB\BSON\toPHP($bson);
var_dump($value);

?>

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

object(stdClass)#1 (1) {
  ["foo"]=>
  int(1)
}

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΅Ρ‰Ρ‘ Π½Π΅ добавляли примСчания для страницы