function ExtensionStreamBase::dirname

Overrides LocalStream::dirname

File

core/lib/Drupal/Core/StreamWrapper/ExtensionStreamBase.php, line 86

Class

ExtensionStreamBase
Defines a base stream wrapper implementation for extension assets.

Namespace

Drupal\Core\StreamWrapper

Code

public function dirname($uri = NULL) : string {
  if (isset($uri)) {
    $this->setUri($uri);
  }
  else {
    $uri = $this->uri;
  }
  [$scheme] = explode('://', $uri, 2);
  $dirname = dirname($this->getTarget($uri));
  $dirname = $dirname !== '.' ? rtrim("/{$dirname}", '/') : '';
  // Call the getExtension() method to ensure the extension exists.
  $extension = $this->getExtension($this->getExtensionName());
  return "{$scheme}://{$extension->getName()}{$dirname}";
}

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