protected function ContentEntityNormalizer::getTypedDataIds in Zircon Profile 8.0
Same name and namespace in other branches
- 8 core/modules/hal/src/Normalizer/ContentEntityNormalizer.php \Drupal\hal\Normalizer\ContentEntityNormalizer::getTypedDataIds()
Gets the typed data IDs for a type URI.
Parameters
array $types: The type array(s) (value of the 'type' attribute of the incoming data).
array $context: Context from the normalizer/serializer operation.
Return value
array The typed data IDs.
1 call to ContentEntityNormalizer::getTypedDataIds()
- ContentEntityNormalizer::denormalize in core/
modules/ hal/ src/ Normalizer/ ContentEntityNormalizer.php - Implements \Symfony\Component\Serializer\Normalizer\DenormalizerInterface::denormalize().
File
- core/
modules/ hal/ src/ Normalizer/ ContentEntityNormalizer.php, line 226 - Contains \Drupal\hal\Normalizer\ContentEntityNormalizer.
Class
- ContentEntityNormalizer
- Converts the Drupal entity object structure to a HAL array structure.
Namespace
Drupal\hal\NormalizerCode
protected function getTypedDataIds($types, $context = array()) {
// The 'type' can potentially contain an array of type objects. By default,
// Drupal only uses a single type in serializing, but allows for multiple
// types when deserializing.
if (isset($types['href'])) {
$types = array(
$types,
);
}
foreach ($types as $type) {
if (!isset($type['href'])) {
throw new UnexpectedValueException('Type must contain an \'href\' attribute.');
}
$type_uri = $type['href'];
// Check whether the URI corresponds to a known type on this site. Break
// once one does.
if ($typed_data_ids = $this->linkManager
->getTypeInternalIds($type['href'], $context)) {
break;
}
}
// If none of the URIs correspond to an entity type on this site, no entity
// can be created. Throw an exception.
if (empty($typed_data_ids)) {
throw new UnexpectedValueException(sprintf('Type %s does not correspond to an entity on this site.', $type_uri));
}
return $typed_data_ids;
}