最も簡単な方法は、おそらくオブジェクトを配列に「キャスト可能」にすることです。
保存するプロパティが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
を作成してください メソッドは再帰的です。