public function unserialize($value, ClassMetadata $metadata, $field) { $array = array(); $serializerMetadata = $metadata->getSerializer(); //reset value to array if (!is_array($value)) { if ($value instanceof ArrayCollection) { $value = $value->toArray(); } elseif ($value instanceof ArrayObject) { $value = $value->getArrayCopy(); } } if (isset($serializerMetadata['fields'][$field]['collectionType'])) { switch ($serializerMetadata['fields'][$field]['collectionType']) { case 'ArrayObject': $array = new ArrayObject($value); break; case 'ArrayCollection': $array = new ArrayCollection($value); break; case 'Array': case 'array': default: $array = $value; break; } } else { $array = (array) $value; } return $array; }
public function isSerializableField($field, ClassMetadata $metadata) { $serializerMetadata = $metadata->getSerializer(); if (isset($serializerMetadata['fields'][$field]['serializeIgnore']) && $serializerMetadata['fields'][$field]['serializeIgnore']) { return false; } return true; }
public function fieldList(ClassMetadata $metadata, $includeId = true) { $return = []; $serializerMetadata = $metadata->getSerializer(); foreach ($metadata->getFieldNames() as $field) { if (isset($serializerMetadata['fields'][$field]['unserializeIgnore']) && $serializerMetadata['fields'][$field]['unserializeIgnore']) { continue; } $return[] = $field; } if (!$includeId) { unset($return[$metadata->getIdentifier()]); } return $return; }