Cara termudah mungkin adalah dengan membuat objek Anda "castable" ke array.
Jika properti yang ingin Anda simpan adalah public
, Anda cukup melakukan:
$array = (array)$foo;
Jika tidak, toArray
metode, atau membuatnya mengimplementasikan Iterator
antarmuka akan berfungsi:
class Foo implements IteratorAggregate {
protected $bar = 'hello';
protected $baz = 'world';
public function getIterator() {
return new ArrayIterator(array(
'bar' => $this->bar,
'baz' => $this->baz,
));
}
}
Jelas, Anda juga dapat menggunakan get_object_vars
, Refleksi dan semacamnya alih-alih mengkodekan daftar properti di getIterator
metode.
Kemudian, cukup:
$foo = new Foo;
$array = iterator_to_array($foo);
$mongodb->selectCollection('Foo')->insert($array);
Tergantung pada bagaimana Anda ingin menyimpan objek Anda, Anda mungkin ingin menggunakan DBRefs daripada menyimpan objek bersarang sekaligus, sehingga Anda dapat dengan mudah find
mereka secara terpisah setelahnya. Jika tidak, buat saja toArray
your metode rekursif.