/** * Use inner type to convert each array's value * * @param mixed $value * @param Property $property * @param string $method * * @return array */ protected function convert($value, Property $property, $method) { if (!$property->hasOption('inner_type')) { throw new IncompletePropertyDefinitionException(sprintf('An inner type must be defined for the property "%s"', $property->getName())); } $value = (array) $value; $type = Types::getType($property->getOption('inner_type')); if ($type instanceof self) { throw new \LogicException('Array imbrication is not allowed'); } foreach ($value as &$val) { $val = $type->{$method}($val, $property); } return $value; }
/** * {@inheritdoc} */ public function convertToPHPValue($value, Property $property) { return json_decode($value, $property->hasOption('associative') ? (bool) $property->getOption('associative') : false); }