Ejemplo n.º 1
0
 /**
  * Map a given data based on a given structure
  *
  * @param array $data Data to be mapped
  * @param array $structure How to map
  * @param string $basePrefix
  * @return void will change $data by reference
  */
 public function map(array &$data, array $structure, $basePrefix = null)
 {
     foreach ($structure as $key => $value) {
         if (!isset($data[$key])) {
             continue;
         }
         $keyData =& $data[$key];
         if (!isset($value['prefix'])) {
             $this->map($keyData, $value);
         } else {
             foreach ((array) $value['type'] as $type) {
                 $use = isset($value['use']) ? $value['use'] : '';
                 $inner = isset($value['inner']) ? $value['inner'] : '';
                 $type = $this->factory->create($this, $type, $this->mapper, ['prefix' => $basePrefix . $value['prefix'], 'use' => $use, 'inner' => $inner]);
                 $type->run($keyData);
             }
         }
     }
 }