सबसे आसान तरीका शायद आपकी वस्तु को "कास्टेबल" सरणी में बनाना है।
यदि आप जिन संपत्तियों को संगृहीत करना चाहते हैं वे public
हैं , आप बस यह कर सकते हैं:
$array = (array)$foo;
अन्यथा, एक toArray
विधि, या इसे एक Iterator
implement लागू करने के लिए इंटरफ़ेस काम करेगा:
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
. में संपत्ति सूची को हार्डकोड करने के बजाय विधि।
फिर, बस:
$foo = new Foo;
$array = iterator_to_array($foo);
$mongodb->selectCollection('Foo')->insert($array);
आप अपनी वस्तुओं को कैसे संग्रहीत करना चाहते हैं, इस पर निर्भर करते हुए, आप नेस्टेड वस्तुओं को एक साथ संग्रहीत करने के बजाय DBRefs का उपयोग करना चाह सकते हैं, ताकि आप आसानी से find
बाद में उन्हें अलग से। यदि नहीं, तो बस अपना toArray
बनाएं विधि पुनरावर्ती।