function RelationLinkManager::getRelationUri

Same name in other branches
  1. 9 core/modules/hal/src/LinkManager/RelationLinkManager.php \Drupal\hal\LinkManager\RelationLinkManager::getRelationUri()

Overrides RelationLinkManagerInterface::getRelationUri

1 call to RelationLinkManager::getRelationUri()
RelationLinkManager::writeCache in core/modules/hal/src/LinkManager/RelationLinkManager.php
Writes the cache of relation links.

File

core/modules/hal/src/LinkManager/RelationLinkManager.php, line 96

Class

RelationLinkManager

Namespace

Drupal\hal\LinkManager

Code

public function getRelationUri($entity_type, $bundle, $field_name, $context = []) {
    // Per the interface documentation of this method, the returned URI may
    // optionally also serve as the URL of a documentation page about this
    // field. However, Drupal does not currently implement such a documentation
    // page. Therefore, we return a URI assembled relative to the site's base
    // URL, which is sufficient to uniquely identify the site's entity type +
    // bundle + field for use in hypermedia formats, but we do not take into
    // account unclean URLs, language prefixing, or anything else that would be
    // required for Drupal to be able to respond with content at this URL. If a
    // module is installed that adds such content, but requires this URL to be
    // different (e.g., include a language prefix), then the module must also
    // override the RelationLinkManager class/service to return the desired URL.
    $uri = $this->getLinkDomain($context) . "/rest/relation/{$entity_type}/{$bundle}/{$field_name}";
    $this->moduleHandler
        ->alter('hal_relation_uri', $uri, $context);
    $this->moduleHandler
        ->alterDeprecated('This hook is deprecated in Drupal 8.3.x and will be removed before Drupal 9.0.0. Implement hook_hal_relation_uri_alter() instead.', 'rest_relation_uri', $uri, $context);
    return $uri;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.