(mongodb >=1.0.0)
MongoDB\BSON\toPHP β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ PHP-ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ BSON-Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ΠΠ΅ΡΠΎΠ΄ Π£Π‘Π’ΠΠ ΠΠ Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Π²Π΅ΡΡΠΈΠΈ 1.20.0, Π° Π² Π²Π΅ΡΡΠΈΠΈ 2.0 ΠΌΠ΅ΡΠΎΠ΄ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π»ΡΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ MongoDB\BSON\Document::toPHP().
ΠΠ΅ΡΠΎΠ΄ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅Ρ BSON-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ β Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ β Π² Π΅Π³ΠΎ PHP-ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
Π§Π΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ typeMap ΡΠΏΡΠ°Π²Π»ΡΡΡ PHP-ΡΠΈΠΏΠ°ΠΌΠΈ,
ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ BSON-ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈ BSON-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ (ΠΊΠ°ΠΊ ΠΊΠΎΡΠ½Π΅Π²ΡΠ΅, ΡΠ°ΠΊ ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅).
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ BSON ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ΡΡ ΠΊΠ»ΡΡΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ Ρ ΡΠ°Π½ΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΏΠΈΡΠΊΠ° ΠΏΠ°Ρ ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅; ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΠΎΠ·Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΎΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Ρ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΠ°ΠΌΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΌΠ°ΡΡΠΈΠ²Ρ PHP Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΡ ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ, Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ ΠΏΡΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° BSON Ρ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠΌΠΈΡΡ ΠΊΠ»ΡΡΠ°ΠΌΠΈ.
bson (string)typeMap (array)ΠΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ PHP-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π» ΠΏΡΡΡΠΌ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ BSON-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°.
| ΠΠ΅ΡΡΠΈΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
| 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)
}