/** * @return array * @see DbObject::toArray */ public function toArray() { // do regular parse $arr = parent::toArray(); // get all dynamic properties $dynamicProps = $this->getDynamicprops(); // if no dynamic properties are set then // just return the parent result if (!is_array($dynamicProps)) { return $arr; } // merge and return full data return array_merge($arr, $dynamicProps); }
/** * @covers MarketMeSuite\Phranken\Database\Object\DbObject::multiToArray */ public function testMultiToArray() { // mock objects $mockMap = array('_id' => 'id', 'key1' => 'key1', 'key2' => 'key2'); /** @var DbObject $obj1 */ $obj1 = $this->getMockForAbstractClass('MarketMeSuite\\Phranken\\Database\\Object\\DbObject'); $obj1->map = $mockMap; /** @var DbObject $obj2 */ $obj2 = $this->getMockForAbstractClass('MarketMeSuite\\Phranken\\Database\\Object\\DbObject'); $obj2->map = $mockMap; $obj1->id = $obj2->id = 'test_id'; $obj1->key1 = $obj2->key1 = 'val1'; $obj1->key2 = $obj2->key2 = 'val2'; $actual = DbObject::multiToArray(array($obj1, $obj2)); $this->assertEquals(array(array('_id' => 'test_id', 'key1' => 'val1', 'key2' => 'val2'), array('_id' => 'test_id', 'key1' => 'val1', 'key2' => 'val2')), $actual); $actual = DbObject::multiToArray(array($obj1, $obj2), array('_id', 'key1')); $this->assertEquals(array(array('_id' => 'test_id', 'key1' => 'val1'), array('_id' => 'test_id', 'key1' => 'val1')), $actual, 'only allowed fields should be returned'); }