Linux vmi2545633.contaboserver.net 6.1.0-32-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.129-1 (2025-03-06) x86_64
Apache/2.4.62 (Debian)
Server IP : 127.0.0.1 & Your IP : 127.0.0.1
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
php /
tests /
mongodb /
tests /
standalone /
Delete
Unzip
Name
Size
Permission
Date
Action
bug0231.phpt
786
B
-rw-r--r--
2025-04-09 02:56
bug0357.phpt
600
B
-rw-r--r--
2025-04-09 02:56
bug0545.phpt
3.17
KB
-rw-r--r--
2025-04-09 02:56
bug0655.phpt
1.07
KB
-rw-r--r--
2025-04-09 02:56
command-aggregate-001.phpt
960
B
-rw-r--r--
2025-04-09 02:56
connectiontimeoutexception-001.phpt
1019
B
-rw-r--r--
2025-04-09 02:56
executiontimeoutexception-001.phpt
986
B
-rw-r--r--
2025-04-09 02:56
executiontimeoutexception-002.phpt
964
B
-rw-r--r--
2025-04-09 02:56
manager-as-singleton.phpt
1.46
KB
-rw-r--r--
2025-04-09 02:56
query-errors.phpt
1.22
KB
-rw-r--r--
2025-04-09 02:56
update-multi-001.phpt
4.91
KB
-rw-r--r--
2025-04-09 02:56
write-error-001.phpt
938
B
-rw-r--r--
2025-04-09 02:56
writeresult-isacknowledged-001.phpt
1
KB
-rw-r--r--
2025-04-09 02:56
writeresult-isacknowledged-002.phpt
1.16
KB
-rw-r--r--
2025-04-09 02:56
writeresult-isacknowledged-003.phpt
1.07
KB
-rw-r--r--
2025-04-09 02:56
Save
Rename
--TEST-- PHPC-545: Update does not serialize embedded Persistable's __pclass field --SKIPIF-- <?php require __DIR__ . "/../utils/basic-skipif.inc"; ?> <?php skip_if_not_live(); ?> <?php skip_if_not_clean(); ?> --FILE-- <?php require_once __DIR__ . "/../utils/basic.inc"; #[\AllowDynamicProperties] class Book implements MongoDB\BSON\Persistable { #[\ReturnTypeWillChange] public function bsonSerialize() { $data = get_object_vars($this); return $data; } public function bsonUnserialize(array $data): void { foreach ($data as $name => $value) { $this->{$name} = $value; } } } #[\AllowDynamicProperties] class Page implements MongoDB\BSON\Persistable { #[\ReturnTypeWillChange] public function bsonSerialize() { $data = get_object_vars($this); return $data; } public function bsonUnserialize(array $data): void { foreach ($data as $name => $value) { $this->{$name} = $value; } } } // Aux $manager = create_test_manager(); $wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY); // Create $book = new Book(); $book->title = 'Unnameable'; $book->pages = []; $page1 = new Page(); $page1->content = 'Lorem ipsum'; $book->pages[] = $page1; $bulk = new MongoDB\Driver\BulkWrite; $bulk->insert($book); $result = $manager->executeBulkWrite(NS, $bulk, ['writeConcern' => $wc]); printf("Inserted %d document(s)\n", $result->getInsertedCount()); // Read $query = new MongoDB\Driver\Query(['title' => $book->title]); $cursor = $manager->executeQuery(NS, $query); $bookAfterInsert = $cursor->toArray()[0]; // Update $bookAfterInsert->description = 'An interesting document'; $page2 = new Page(); $page2->content = 'Dolor sit amet'; $bookAfterInsert->pages[] = $page2; $bulk = new MongoDB\Driver\BulkWrite; $bulk->update(['title' => $bookAfterInsert->title], $bookAfterInsert); $result = $manager->executeBulkWrite(NS, $bulk, ['writeConcern' => $wc]); printf("Modified %d document(s)\n", $result->getModifiedCount()); // Read (again) $query = new MongoDB\Driver\Query(['title' => $bookAfterInsert->title]); $cursor = $manager->executeQuery(NS, $query); $bookAfterUpdate = $cursor->toArray()[0]; var_dump($bookAfterUpdate); ?> ===DONE=== <?php exit(0); ?> --EXPECTF-- Inserted 1 document(s) Modified 1 document(s) object(Book)#%d (%d) { ["_id"]=> object(MongoDB\BSON\ObjectId)#%d (%d) { ["oid"]=> string(24) "%s" } ["__pclass"]=> object(MongoDB\BSON\Binary)#%d (%d) { ["data"]=> string(4) "Book" ["type"]=> int(%d) } ["title"]=> string(10) "Unnameable" ["pages"]=> array(2) { [0]=> object(Page)#%d (%d) { ["__pclass"]=> object(MongoDB\BSON\Binary)#%d (%d) { ["data"]=> string(4) "Page" ["type"]=> int(%d) } ["content"]=> string(11) "Lorem ipsum" } [1]=> object(Page)#%d (%d) { ["__pclass"]=> object(MongoDB\BSON\Binary)#%d (%d) { ["data"]=> string(4) "Page" ["type"]=> int(%d) } ["content"]=> string(14) "Dolor sit amet" } } ["description"]=> string(23) "An interesting document" } ===DONE===