Esempio n. 1
0
 /**
  * Hydrate $object with the provided $data.
  *
  * @param  array $data
  * @param  object $structure
  * @return object
  */
 public function hydrate(array $data, $structure)
 {
     if ($structure instanceof Structure\ProxyBase) {
         if (isset($data['tags']) && is_string($data['tags'])) {
             $data['tags'] = explode(static::TAG_SEPARATOR, $data['tags']);
         }
         if (isset($data['tagIds']) && is_string($data['tagIds'])) {
             $data['tagIds'] = explode(static::TAG_SEPARATOR, $data['tagIds']);
         }
         if (isset($data['localeTags']) && is_string($data['localeTags'])) {
             $data['localeTags'] = explode(static::TAG_SEPARATOR, $data['localeTags']);
         }
         if (isset($data['proxyData'])) {
             $proxyData = $data['proxyData'] ?: array();
             unset($data['proxyData']);
             if (is_string($proxyData)) {
                 $proxyData = $this->parseProxyData($proxyData);
             }
             if (is_array($proxyData)) {
                 $proxyData = array_merge($data, $proxyData);
             }
             foreach (static::$columns as $column => $type) {
                 unset($proxyData[$column]);
             }
         } else {
             $proxyData = $data;
         }
         $proxyData['proxyBase'] = parent::hydrate($data, $structure);
         $proxyData['type'] = $proxyData['proxyBase']->type;
         return $this->structureFactory->factory($proxyData);
     }
     return parent::hydrate($data, $structure);
 }
Esempio n. 2
0
 /**
  * Hydrate $object with the provided $data.
  *
  * @param  array $data
  * @param  object $structure
  * @return object
  */
 public function hydrate(array $data, $structure)
 {
     if ($structure instanceof Structure) {
         if (isset($data[self::PROPERTIES_FIELD])) {
             $properties = $data[self::PROPERTIES_FIELD] ?: array();
             unset($data[self::PROPERTIES_FIELD]);
             if (is_string($properties)) {
                 $properties = $this->parseProperties($properties);
             }
             if (is_array($properties)) {
                 $data[self::PROPERTIES_FIELD] = $properties;
             }
         } else {
             $data[self::PROPERTIES_FIELD] = array();
         }
     }
     return parent::hydrate($data, $structure);
 }