function FileUsageBase::add

Same name and namespace in other branches
  1. 9 core/modules/file/src/FileUsage/FileUsageBase.php \Drupal\file\FileUsage\FileUsageBase::add()
  2. 8.9.x core/modules/file/src/FileUsage/FileUsageBase.php \Drupal\file\FileUsage\FileUsageBase::add()
  3. 11.x core/modules/file/src/FileUsage/FileUsageBase.php \Drupal\file\FileUsage\FileUsageBase::add()

Records that a module is using a file.

Examples:

  • A module that associates files with nodes, so $type would be 'node' and $id would be the node's nid. Files for all revisions are stored within a single nid.
  • The User module associates an image with a user, so $type would be 'user' and the $id would be the user's uid.

Parameters

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

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

string $type: The type of the object that contains the referenced file.

string $id: The unique ID of the object containing the referenced file.

int $count: (optional) The number of references to add to the object. Defaults to 1.

Overrides FileUsageInterface::add

1 call to FileUsageBase::add()
DatabaseFileUsageBackend::add in core/modules/file/src/FileUsage/DatabaseFileUsageBackend.php
Records that a module is using a file.
2 methods override FileUsageBase::add()
DatabaseFileUsageBackend::add in core/modules/file/src/FileUsage/DatabaseFileUsageBackend.php
Records that a module is using a file.
TestFileUsage::add in core/modules/system/tests/modules/service_provider_test/src/TestFileUsage.php
Records that a module is using a file.

File

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

Class

FileUsageBase
Defines the base class for database file usage backend.

Namespace

Drupal\file\FileUsage

Code

public function add(FileInterface $file, $module, $type, $id, $count = 1) {
    // Make sure that a used file is permanent.
    if (!$file->isPermanent()) {
        $file->setPermanent();
        $file->save();
    }
}

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