最も簡単な方法は、おそらくオブジェクトを配列に「キャスト可能」にすることです。
保存するプロパティがpublicの場合 、あなたはただすることができます:
$array = (array)$foo;
それ以外の場合は、toArray メソッド、またはIteratorを実装させる インターフェースは機能します:
class Foo implements IteratorAggregate {
protected $bar = 'hello';
protected $baz = 'world';
public function getIterator() {
return new ArrayIterator(array(
'bar' => $this->bar,
'baz' => $this->baz,
));
}
}
もちろん、get_object_varsを使用することもできます 、getIteratorにプロパティリストをハードコーディングする代わりに、Reflectionなど メソッド。
次に、ちょうど:
$foo = new Foo;
$array = iterator_to_array($foo);
$mongodb->selectCollection('Foo')->insert($array);
オブジェクトの保存方法によっては、ネストされたオブジェクトを一度に保存するのではなく、DBRefを使用して、簡単にfindできるようにすることができます。 後で別々にそれら。そうでない場合は、toArrayを作成してください メソッドは再帰的です。