Page Menu
Home
Phabricator (Chris)
Search
Configure Global Search
Log In
Files
F632743
bson-document-toPHP-009.phpt
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Authored By
Unknown
Size
2 KB
Referenced Files
None
Subscribers
None
bson-document-toPHP-009.phpt
View Options
--TEST--
MongoDB\BSON\Document::toPHP(): Setting fieldPath typemaps for compound types with numerical keys
--FILE--
<?php
require_once __DIR__ . "/../utils/basic.inc";
class MyArrayObject extends ArrayObject implements MongoDB\BSON\Unserializable
{
function bsonUnserialize(array $data): void
{
parent::__construct($data, ArrayObject::ARRAY_AS_PROPS);
}
}
$bson = \MongoDB\BSON\Document::fromPHP( [
'_id' => 1,
'array0' => [0 => [ 4, 5, 6 ], 1 => [ 7, 8, 9 ]],
'array1' => [1 => [ 4, 5, 6 ], 2 => [ 7, 8, 9 ]],
] );
function fetch($bson, $typeMap = []) {
return $bson->toPHP($typeMap);
}
echo "Default\n";
$document = fetch($bson);
var_dump($document instanceof stdClass);
var_dump(is_array($document->array0));
var_dump(is_object($document->array1));
var_dump($document->array1 instanceof stdClass);
echo "\nSetting 'array0' path to 'MyArrayObject'\n";
$document = fetch($bson, ["fieldPaths" => [
'array0' => "MyArrayObject"
]]);
var_dump($document instanceof stdClass);
var_dump(is_object($document->array0));
var_dump($document->array0 instanceof MyArrayObject);
echo "\nSetting 'array0.1' path to 'MyArrayObject'\n";
$document = fetch($bson, ["fieldPaths" => [
'array0.1' => "MyArrayObject",
]]);
var_dump($document instanceof stdClass);
var_dump(is_array($document->array0));
var_dump(is_array($document->array0[0]));
var_dump($document->array0[1] instanceof MyArrayObject);
echo "\nSetting 'array1.1' path to 'MyArrayObject'\n";
$document = fetch($bson, ["fieldPaths" => [
'array1.1' => "MyArrayObject",
]]);
var_dump($document instanceof stdClass);
var_dump(is_object($document->array1));
var_dump($document->array1 instanceof stdClass);
$a = ((array) $document->array1);
var_dump($a[1] instanceof MyArrayObject);
var_dump(is_array($a[2]));
?>
===DONE===
<?php exit(0); ?>
--EXPECT--
Default
bool(true)
bool(true)
bool(true)
bool(true)
Setting 'array0' path to 'MyArrayObject'
bool(true)
bool(true)
bool(true)
Setting 'array0.1' path to 'MyArrayObject'
bool(true)
bool(true)
bool(true)
bool(true)
Setting 'array1.1' path to 'MyArrayObject'
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
===DONE===
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Nov 15, 3:09 PM (7 h, 23 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
152422
Default Alt Text
bson-document-toPHP-009.phpt (2 KB)
Attached To
Mode
R114 php-mongodb
Attached
Detach File
Event Timeline