code: public function stream_metadata($path, $option, $value)
      {
          self::restorePrev();
          switch ($option) {
              case STREAM_META_TOUCH:
                  if (!empty($value)) {
                      $success = \touch($path, $value[0], $value[1]);
                  } else {
                      $success = \touch($path);
                  }
                  break;
              case STREAM_META_OWNER_NAME:
                  // Fall through
              case STREAM_META_OWNER:
                  $success = \chown($path, $value);
                  break;
              case STREAM_META_GROUP_NAME:
                  // Fall through
              case STREAM_META_GROUP:
                  $success = \chgrp($path, $value);
                  break;
              case STREAM_META_ACCESS:
                  $success = \chmod($path, $value);
                  break;
              default:
                  $success = false;
          }
          self::register();
          return $success;
      }
docs: Change file options
  
  @param string  $path   filepath or URL
  @param integer $option What meta value is being set
  @param mixed   $value  Meta value
  
  @return boolean
  
  @see http://php.net/manual/en/streamwrapper.stream-metadata.php