org\bovigo\vfs\vfsStreamWrapper::stream_metadata PHP Method

stream_metadata() public method

sets metadata like owner, user or permissions
Since: 1.1.0
public stream_metadata ( string $path, integer $option, mixed $var ) : boolean
$path string
$option integer
$var mixed
return boolean
    public function stream_metadata($path, $option, $var)
    {
        $path = $this->resolvePath(vfsStream::path($path));
        $content = $this->getContent($path);
        switch ($option) {
            case STREAM_META_TOUCH:
                if (null === $content) {
                    $content = $this->createFile($path, null, STREAM_REPORT_ERRORS);
                    // file creation may not be allowed at provided path
                    if (false === $content) {
                        return false;
                    }
                }
                $currentTime = time();
                $content->lastModified(isset($var[0]) ? $var[0] : $currentTime)->lastAccessed(isset($var[1]) ? $var[1] : $currentTime);
                return true;
            case STREAM_META_OWNER_NAME:
                return false;
            case STREAM_META_OWNER:
                if (null === $content) {
                    return false;
                }
                return $this->doPermChange($path, $content, function () use($content, $var) {
                    $content->chown($var);
                });
            case STREAM_META_GROUP_NAME:
                return false;
            case STREAM_META_GROUP:
                if (null === $content) {
                    return false;
                }
                return $this->doPermChange($path, $content, function () use($content, $var) {
                    $content->chgrp($var);
                });
            case STREAM_META_ACCESS:
                if (null === $content) {
                    return false;
                }
                return $this->doPermChange($path, $content, function () use($content, $var) {
                    $content->chmod($var);
                });
            default:
                return false;
        }
    }