mirror of
https://github.com/macintoshplus/mongo-php-driver.git
synced 2026-03-26 01:42:10 +01:00
* Add missing macros for declaring arguments * Add macros to define disabled constructor and __wakeup * Define arginfo via stubs for BSON classes * Declare tentative return types in interfaces * Add correct return type for __set_state methods * Generate class entries for BSON classes * Declare Binary class constants in stub file * Use stubs in exception classes * Add stubs for monitoring classes * Fix wrong JsonSerializable class in BSON stubs * Disable declaration-after-statement This is necessary to let the generated arginfo files compile * Use stubs for driver classes * Fix deprecation messages in tests * Add missing macro * Fix tests relying on value injection * Parse parameters in disabled constructor/wakup function * Add note about arginfo files to contribution docs * Add GitHub action to check generated arginfo files * PHPC-2115: Use DateTimeInterface in UTCDateTime constructor signature * Don't install mongodb extension in GitHub actions workflows * Change indentation in stub files * Use individual #if conditions for each stub method * Make disabled constructor/wakeup methods static * Fix bulkWrite parameter name * Use %d to match property count in tests * Ensure all classes with disabled serialisation declare __wakeup
55 lines
1.4 KiB
PHP
55 lines
1.4 KiB
PHP
--TEST--
|
|
Test for PHPC-274: zval_to_bson() should process BSON\Serializable instances
|
|
--FILE--
|
|
<?php
|
|
|
|
require_once __DIR__ . '/../utils/basic.inc';
|
|
|
|
class AssociativeArray implements MongoDB\BSON\Serializable
|
|
{
|
|
#[\ReturnTypeWillChange]
|
|
public function bsonSerialize()
|
|
{
|
|
return array("random" => "class", "data");
|
|
}
|
|
}
|
|
|
|
class NumericArray implements MongoDB\BSON\Serializable
|
|
{
|
|
#[\ReturnTypeWillChange]
|
|
public function bsonSerialize()
|
|
{
|
|
return array(1, 2, 3);
|
|
}
|
|
}
|
|
|
|
echo "Testing top-level AssociativeArray:\n";
|
|
$bson = fromPHP(new AssociativeArray);
|
|
echo toJSON($bson), "\n";
|
|
echo "Encoded BSON:\n";
|
|
hex_dump($bson);
|
|
|
|
echo "\nTesting top-level NumericArray:\n";
|
|
$bson = fromPHP(new NumericArray);
|
|
echo toJSON($bson), "\n";
|
|
echo "Encoded BSON:\n";
|
|
hex_dump($bson);
|
|
|
|
?>
|
|
===DONE===
|
|
<?php exit(0); ?>
|
|
--EXPECT--
|
|
Testing top-level AssociativeArray:
|
|
{ "random" : "class", "0" : "data" }
|
|
Encoded BSON:
|
|
0 : 23 00 00 00 02 72 61 6e 64 6f 6d 00 06 00 00 00 [#....random.....]
|
|
10 : 63 6c 61 73 73 00 02 30 00 05 00 00 00 64 61 74 [class..0.....dat]
|
|
20 : 61 00 00 [a..]
|
|
|
|
Testing top-level NumericArray:
|
|
{ "0" : 1, "1" : 2, "2" : 3 }
|
|
Encoded BSON:
|
|
0 : 1a 00 00 00 10 30 00 01 00 00 00 10 31 00 02 00 [.....0......1...]
|
|
10 : 00 00 10 32 00 03 00 00 00 00 [...2......]
|
|
===DONE===
|