LinkCollectionNormalizer
class LinkCollectionNormalizer extends NormalizerBase (View source)
| internal | JSON:API maintains no PHP API since its API is the HTTP API. This class may change at any time and this will break any dependencies on it. |
Normalizes a LinkCollection object.
The JSON:API specification has the concept of a "links collection". A links collection is a JSON object where each member of the object is a "link object". Unfortunately, this means that it is not possible to have more than one link for a given key.
When normalizing more than one link in a LinkCollection with the same key, a unique and random string is appended to the link's key after a double dash (--) to differentiate the links. See this class's hashByHref() method for details.
This may change with a later version of the JSON:API specification.
Traits
Constants
| LINK_KEY |
The normalizer $context key name for the key of an individual link. |
| LINK_CONTEXT |
The normalizer $context key name for the context object of the link. |
Properties
| protected | $supportedInterfaceOrClass | {@inheritdoc} | |
| protected | $format | {@inheritdoc} | from NormalizerBase |
| protected string | $hashSalt | A random string to use when hashing links. |
|
| protected AccountInterface | $currentUser | The current user making the request. |
Methods
Implements \Symfony\Component\Serializer\Normalizer\DenormalizerInterface::supportsDenormalization()
Checks if the provided format is supported by this normalizer.
{@inheritdoc}
Rasterizes a value recursively.
{@inheritdoc}
Details
supportsNormalization($data, $format = NULL)
{@inheritdoc}
supportsDenormalization($data, $type, $format = NULL)
Implements \Symfony\Component\Serializer\Normalizer\DenormalizerInterface::supportsDenormalization()
This class doesn't implement DenormalizerInterface, but most of its child classes do. Therefore, this method is implemented at this level to reduce code duplication.
protected bool
checkFormat(string $format = NULL)
Checks if the provided format is supported by this normalizer.
protected
addCacheableDependency(array $context, $data)
Adds cacheability if applicable.
bool
hasCacheableSupportsMethod()
{@inheritdoc}
static protected mixed
rasterizeValueRecursive(mixed $value)
Rasterizes a value recursively.
This is mainly for configuration entities where a field can be a tree of values to rasterize.
__construct(AccountInterface $current_user = NULL)
LinkCollectionNormalizer constructor.
normalize($object, $format = NULL, array $context = [])
{@inheritdoc}
protected string
hashByHref(Link $link)
Hashes a link using its href and its target attributes, if any.
This method generates an unpredictable, but deterministic, 7 character alphanumeric hash for a given link.
The hash is unpredictable because a random hash salt will be used for every request. The hash is deterministic because, within a single request, links with the same href and target attributes (i.o.w. duplicates) will generate equivalent hash values.