You are here

public function FileUsageBase::delete in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/file/src/FileUsage/FileUsageBase.php \Drupal\file\FileUsage\FileUsageBase::delete()
  2. 9 core/modules/file/src/FileUsage/FileUsageBase.php \Drupal\file\FileUsage\FileUsageBase::delete()

Removes a record to indicate that a module is no longer using a file.

Parameters

\Drupal\file\FileInterface $file: A file entity.

string $module: The name of the module using the file.

string $type: (optional) The type of the object that contains the referenced file. May be omitted if all module references to a file are being deleted. Defaults to NULL.

string $id: (optional) The unique ID of the object containing the referenced file. May be omitted if all module references to a file are being deleted. Defaults to NULL.

int $count: (optional) The number of references to delete from the object. Defaults to 1. Zero may be specified to delete all references to the file within a specific object.

Overrides FileUsageInterface::delete

2 methods override FileUsageBase::delete()
DatabaseFileUsageBackend::delete in core/modules/file/src/FileUsage/DatabaseFileUsageBackend.php
Removes a record to indicate that a module is no longer using a file.
TestFileUsage::delete in core/modules/system/tests/modules/service_provider_test/src/TestFileUsage.php
Removes a record to indicate that a module is no longer using a file.

File

core/modules/file/src/FileUsage/FileUsageBase.php, line 44

Class

FileUsageBase
Defines the base class for database file usage backend.

Namespace

Drupal\file\FileUsage

Code

public function delete(FileInterface $file, $module, $type = NULL, $id = NULL, $count = 1) {

  // Do not actually mark files as temporary when the behavior is disabled.
  if (!$this->configFactory
    ->get('file.settings')
    ->get('make_unused_managed_files_temporary')) {
    return;
  }

  // If there are no more remaining usages of this file, mark it as temporary,
  // which result in a delete through system_cron().
  $usage = \Drupal::service('file.usage')
    ->listUsage($file);
  if (empty($usage)) {
    $file
      ->setTemporary();
    $file
      ->save();
  }
}