Esempio n. 1
0
 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());
 }
Esempio n. 2
0
 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);
 }