function TypeLinkManager::writeCache
Same name in other branches
- 9 core/modules/hal/src/LinkManager/TypeLinkManager.php \Drupal\hal\LinkManager\TypeLinkManager::writeCache()
Writes the cache of type links.
Parameters
array $context: Context from the normalizer/serializer operation.
Return value
array An array of typed data ids (entity_type and bundle) keyed by corresponding type URI.
1 call to TypeLinkManager::writeCache()
- TypeLinkManager::getTypes in core/
modules/ hal/ src/ LinkManager/ TypeLinkManager.php - Get the array of type links.
File
-
core/
modules/ hal/ src/ LinkManager/ TypeLinkManager.php, line 145
Class
Namespace
Drupal\hal\LinkManagerCode
protected function writeCache($context = []) {
$data = [];
// Type URIs correspond to bundles. Iterate through the bundles to get the
// URI and data for them.
$entity_types = $this->entityTypeManager
->getDefinitions();
foreach ($this->bundleInfoService
->getAllBundleInfo() as $entity_type_id => $bundles) {
// Only content entities are supported currently.
// @todo Consider supporting config entities.
if ($entity_types[$entity_type_id]->entityClassImplements(ConfigEntityInterface::class)) {
continue;
}
foreach ($bundles as $bundle => $bundle_info) {
// Get a type URI for the bundle.
$bundle_uri = $this->getTypeUri($entity_type_id, $bundle, $context);
$data[$bundle_uri] = [
'entity_type' => $entity_type_id,
'bundle' => $bundle,
];
}
}
// These URIs only change when entity info changes, so cache it permanently
// and only clear it when entity_info is cleared.
$this->cache
->set('hal:links:types', $data, Cache::PERMANENT, [
'entity_types',
]);
return $data;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.