W3cubDocs

/Drupal 8

public function LocalStream::stream_metadata

public LocalStream::stream_metadata($uri, $option, $value)

Sets metadata on the stream.

Parameters

string $path: A string containing the URI to the file to set metadata on.

int $option: One of:

  • STREAM_META_TOUCH: The method was called in response to touch().
  • STREAM_META_OWNER_NAME: The method was called in response to chown() with string parameter.
  • STREAM_META_OWNER: The method was called in response to chown().
  • STREAM_META_GROUP_NAME: The method was called in response to chgrp().
  • STREAM_META_GROUP: The method was called in response to chgrp().
  • STREAM_META_ACCESS: The method was called in response to chmod().

mixed $value: If option is:

  • STREAM_META_TOUCH: Array consisting of two arguments of the touch() function.
  • STREAM_META_OWNER_NAME or STREAM_META_GROUP_NAME: The name of the owner user/group as string.
  • STREAM_META_OWNER or STREAM_META_GROUP: The value of the owner user/group as integer.
  • STREAM_META_ACCESS: The argument of the chmod() as integer.

Return value

bool Returns TRUE on success or FALSE on failure. If $option is not implemented, FALSE should be returned.

Overrides PhpStreamWrapperInterface::stream_metadata

See also

http://php.net/manual/streamwrapper.stream-metadata.php

File

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

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;
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!StreamWrapper!LocalStream.php/function/LocalStream::stream_metadata/8.1.x