1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
<?php
class Person implements MongoDB\BSON\Persistable {
protected $name;
protected $age;
protected $addresses = array();
protected $friends = array();
protected $secret = "none";
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
$this->addresses = array();
$this->secret = "$name confidential info";
}
public function addAddress(Address $address) {
$this->addresses[] = $address;
}
public function addFriend(Person $friend) {
$this->friends[] = $friend;
}
#[\ReturnTypeWillChange]
public function bsonSerialize() {
return array(
"name" => $this->name,
"age" => $this->age,
"addresses" => $this->addresses,
"friends" => $this->friends,
);
}
public function bsonUnserialize(array $data): void {
$this->name = $data["name"];
$this->age = $data["age"];
$this->addresses = $data["addresses"];
$this->friends = $data["friends"];
}
}
class Address implements MongoDB\BSON\Persistable {
protected $zip;
protected $country;
public function __construct($zip, $country) {
$this->zip = $zip;
$this->country = $country;
}
#[\ReturnTypeWillChange]
public function bsonSerialize() {
return array(
"zip" => $this->zip,
"country" => $this->country,
);
}
public function bsonUnserialize(array $data): void {
$this->zip = $data["zip"];
$this->country = $data["country"];
}
}
|