RelationLinkManager::writeCache

protected RelationLinkManager::writeCache($context = array())

Writes the cache of relation links.

Parameters

array $context: Context from the normalizer/serializer operation.

File

core/modules/rest/src/LinkManager/RelationLinkManager.php, line 120

Class

RelationLinkManager

Namespace

Drupal\rest\LinkManager

Code

protected function writeCache($context = array()) {
  $data = array();

  foreach ($this->entityManager->getDefinitions() as $entity_type) {
    if ($entity_type instanceof ContentEntityTypeInterface) {
      foreach ($this->entityManager->getBundleInfo($entity_type->id()) as $bundle => $bundle_info) {
        foreach ($this->entityManager->getFieldDefinitions($entity_type->id(), $bundle) as $field_definition) {
          $relation_uri = $this->getRelationUri($entity_type->id(), $bundle, $field_definition->getName(), $context);
          $data[$relation_uri] = array(
            'entity_type' => $entity_type,
            'bundle' => $bundle,
            'field_name' => $field_definition->getName(),
          );
        }
      }
    }
  }
  // These URIs only change when field info changes, so cache it permanently
  // and only clear it when the fields cache is cleared.
  $this->cache->set('rest:links:relations', $data, Cache::PERMANENT, array('entity_field_info'));
}
doc_Drupal
2016-10-29 09:37:22
Comments
Leave a Comment

Please login to continue.