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