function ImageStyle::buildUri

Same name and namespace in other branches
  1. 11.x core/modules/image/src/Entity/ImageStyle.php \Drupal\image\Entity\ImageStyle::buildUri()

File

core/modules/image/src/Entity/ImageStyle.php, line 176

Class

ImageStyle
Defines an image style configuration entity.

Namespace

Drupal\image\Entity

Code

public function buildUri($uri) {
  $source_scheme = $scheme = StreamWrapperManager::getScheme($uri);
  $default_scheme = $this->fileDefaultScheme();
  if ($source_scheme) {
    $path = StreamWrapperManager::getTarget($uri);
    // The scheme of derivative image files only needs to be computed for
    // source files not stored in the default scheme.
    if ($source_scheme != $default_scheme) {
      $class = $this->getStreamWrapperManager()
        ->getClass($source_scheme);
      $is_writable = NULL;
      if ($class) {
        $is_writable = $class::getType() & StreamWrapperInterface::WRITE;
      }
      // Compute the derivative URI scheme. Derivatives created from writable
      // source stream wrappers will inherit the scheme. Derivatives created
      // from read-only stream wrappers will fall-back to the default scheme.
      $scheme = $is_writable ? $source_scheme : $default_scheme;
    }
  }
  else {
    $path = $uri;
    $source_scheme = $scheme = $default_scheme;
  }
  return "{$scheme}://styles/{$this->id()}/{$source_scheme}/{$this->addExtension($path)}";
}

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