function hook_file_move

Same name and namespace in other branches
  1. 7.x modules/system/system.api.php \hook_file_move()
  2. 9 core/modules/file/file.api.php \hook_file_move()
  3. 8.9.x core/modules/file/file.api.php \hook_file_move()
  4. 11.x core/modules/file/file.api.php \hook_file_move()

Respond to a file that has been moved.

Parameters

\Drupal\file\FileInterface $file: The updated file entity after the move.

\Drupal\file\FileInterface $source: The original file entity before the move.

See also

\Drupal\file\FileRepositoryInterface::move()

Related topics

4 functions implement hook_file_move()

Note: the procedural functions in this list are found by pattern matching, so the list may include some functions that are not actually implementations of this hook.

FileTestHooks::fileMove in core/modules/file/tests/file_test/src/Hook/FileTestHooks.php
Implements hook_file_move().
file_test_file_move in core/modules/file/tests/file_test/file_test.module
Implements hook_file_move().
ImageHooks::fileMove in core/modules/image/src/Hook/ImageHooks.php
Implements hook_file_move().
image_file_move in core/modules/image/image.module
Implements hook_file_move().
1 invocation of hook_file_move()
FileRepository::move in core/modules/file/src/FileRepository.php
Moves a file to a new location and update the file's database entry.

File

core/modules/file/file.api.php, line 124

Code

function hook_file_move(\Drupal\file\FileInterface $file, \Drupal\file\FileInterface $source) {
  // Make sure that the file name starts with the owner's user name.
  if (!str_starts_with($file->getFilename(), $file->getOwner()->name)) {
    $file->setFilename($file->getOwner()->name . '_' . $file->getFilename());
    $file->save();
    \Drupal::logger('file')->notice('Moved file %source has been renamed to %destination', [
      '%source' => $source->filename,
      '%destination' => $file->getFilename(),
    ]);
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.