You are here

public function SessionStreamWrapper::rename in Examples for Developers 8

Same name and namespace in other branches
  1. 3.x modules/stream_wrapper_example/src/StreamWrapper/SessionStreamWrapper.php \Drupal\stream_wrapper_example\StreamWrapper\SessionStreamWrapper::rename()

Support for rename().

Parameters

string $from_uri: The uri to the file to rename.

string $to_uri: The new uri for file.

Return value

bool TRUE if file was successfully renamed.

Overrides PhpStreamWrapperInterface::rename

See also

http://php.net/manual/en/streamwrapper.rename.php

File

stream_wrapper_example/src/StreamWrapper/SessionStreamWrapper.php, line 627

Class

SessionStreamWrapper
Example stream wrapper class to handle session:// streams.

Namespace

Drupal\stream_wrapper_example\StreamWrapper

Code

public function rename($from_uri, $to_uri) {

  // We get the old key contents, write it
  // to a new key, erase the old key.
  $from_path = $this
    ->getLocalPath($from_uri);
  $to_path = $this
    ->getLocalPath($to_uri);
  if (!$this->sessionHelper
    ->checkPath($from_path)) {
    return FALSE;
  }
  $from_key = $this->sessionHelper
    ->getPath($from_path);
  $path_info = $this->sessionHelper
    ->getParentPath($to_path);
  $parent_path = $path_info['dirname'];

  // We will only allow writing to a non-existent file
  // in an existing directory.
  if ($this->sessionHelper
    ->checkPath($parent_path) && !$this->sessionHelper
    ->checkPath($to_path)) {
    $this->sessionHelper
      ->setPath($to_path, $from_key);
    $this->sessionHelper
      ->clearPath($from_path);
    return TRUE;
  }
  return FALSE;
}