public function testKeys() { $meta = new SetMeta(array(0 => new ArrayType(), '0.label' => new StringType(), '0.number' => new SmallIntegerType(), 1 => new ArrayType(), '1.label' => new StringType(), '1.number' => new SmallIntegerType())); $set = new Set(array('0' => array('label' => 'C1', 'number' => 1), 1 => array('label' => 'C2', 'number' => 2)), $meta); $this->assertEquals(array('0', '0.label', '0.number', '1', '1.label', '1.number'), $set->getKeys()); $this->assertEquals(array(0, 1), $set->getRootKeys()); }
public function export() { $meta = new SetMeta(); foreach ($this->getSetMeta()->getTypes() as $property => $type) { // @TODO schön wäre eigentlich auf ebene 2 immer nur "entity:id" zu exportieren // das müsste dann alle relevanten daten für die response haben if ($type instanceof EntityType || $type instanceof PersistentCollectionType) { continue; } $meta->setFieldType($property, $type); } $set = new Set(array(), $meta); foreach ($set->getKeys() as $property) { $set->set($property, $this->callGetter($property)); } $exporter = new ObjectExporter(); return $exporter->walkWalkable($set); }