public function UrlResolver::getResourceUrl in Drupal 8
Same name in this branch
- 8 core/modules/media/src/OEmbed/UrlResolver.php \Drupal\media\OEmbed\UrlResolver::getResourceUrl()
 - 8 core/modules/media/tests/modules/media_test_oembed/src/UrlResolver.php \Drupal\media_test_oembed\UrlResolver::getResourceUrl()
 
Same name and namespace in other branches
- 9 core/modules/media/src/OEmbed/UrlResolver.php \Drupal\media\OEmbed\UrlResolver::getResourceUrl()
 
Builds the resource URL for a media asset URL.
Parameters
string $url: The media asset URL.
int $max_width: (optional) Maximum width of the oEmbed resource, in pixels.
int $max_height: (optional) Maximum height of the oEmbed resource, in pixels.
Return value
string Returns the resource URL corresponding to the given media item URL.
Overrides UrlResolverInterface::getResourceUrl
1 call to UrlResolver::getResourceUrl()
- UrlResolver::getResourceUrl in core/
modules/ media/ tests/ modules/ media_test_oembed/ src/ UrlResolver.php  - Builds the resource URL for a media asset URL.
 
1 method overrides UrlResolver::getResourceUrl()
- UrlResolver::getResourceUrl in core/
modules/ media/ tests/ modules/ media_test_oembed/ src/ UrlResolver.php  - Builds the resource URL for a media asset URL.
 
File
- core/
modules/ media/ src/ OEmbed/ UrlResolver.php, line 145  
Class
- UrlResolver
 - Converts oEmbed media URLs into endpoint-specific resource URLs.
 
Namespace
Drupal\media\OEmbedCode
public function getResourceUrl($url, $max_width = NULL, $max_height = NULL) {
  // Try to get the resource URL from the static cache.
  if (isset($this->urlCache[$url])) {
    return $this->urlCache[$url];
  }
  // Try to get the resource URL from the persistent cache.
  $cache_id = "media:oembed_resource_url:{$url}:{$max_width}:{$max_height}";
  $cached = $this
    ->cacheGet($cache_id);
  if ($cached) {
    $this->urlCache[$url] = $cached->data;
    return $this->urlCache[$url];
  }
  $provider = $this
    ->getProviderByUrl($url);
  $endpoints = $provider
    ->getEndpoints();
  $endpoint = reset($endpoints);
  $resource_url = $endpoint
    ->buildResourceUrl($url);
  $parsed_url = UrlHelper::parse($resource_url);
  if ($max_width) {
    $parsed_url['query']['maxwidth'] = $max_width;
  }
  if ($max_height) {
    $parsed_url['query']['maxheight'] = $max_height;
  }
  // Let other modules alter the resource URL, because some oEmbed providers
  // provide extra parameters in the query string. For example, Instagram also
  // supports the 'omitscript' parameter.
  $this->moduleHandler
    ->alter('oembed_resource_url', $parsed_url, $provider);
  $resource_url = $parsed_url['path'] . '?' . rawurldecode(UrlHelper::buildQuery($parsed_url['query']));
  $this->urlCache[$url] = $resource_url;
  $this
    ->cacheSet($cache_id, $resource_url);
  return $resource_url;
}