function LocalStream::stream_metadata

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/StreamWrapper/LocalStream.php \Drupal\Core\StreamWrapper\LocalStream::stream_metadata()
  2. 8.9.x core/lib/Drupal/Core/StreamWrapper/LocalStream.php \Drupal\Core\StreamWrapper\LocalStream::stream_metadata()
  3. 10 core/lib/Drupal/Core/StreamWrapper/LocalStream.php \Drupal\Core\StreamWrapper\LocalStream::stream_metadata()

Overrides PhpStreamWrapperInterface::stream_metadata

1 method overrides LocalStream::stream_metadata()
LocalReadOnlyStream::stream_metadata in core/lib/Drupal/Core/StreamWrapper/LocalReadOnlyStream.php
Does not change meta data as this is a read-only stream wrapper.

File

core/lib/Drupal/Core/StreamWrapper/LocalStream.php, line 244

Class

LocalStream
Defines a Drupal stream wrapper base class for local files.

Namespace

Drupal\Core\StreamWrapper

Code

public function stream_metadata($uri, $option, $value) {
    $target = $this->getLocalPath($uri);
    $return = FALSE;
    switch ($option) {
        case STREAM_META_TOUCH:
            if (!empty($value)) {
                $return = touch($target, $value[0], $value[1]);
            }
            else {
                $return = touch($target);
            }
            break;
        case STREAM_META_OWNER_NAME:
        case STREAM_META_OWNER:
            $return = chown($target, $value);
            break;
        case STREAM_META_GROUP_NAME:
        case STREAM_META_GROUP:
            $return = chgrp($target, $value);
            break;
        case STREAM_META_ACCESS:
            $return = chmod($target, $value);
            break;
    }
    if ($return) {
        // For convenience clear the file status cache of the underlying file,
        // since metadata operations are often followed by file status checks.
        clearstatcache(TRUE, $target);
    }
    return $return;
}

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