40 lines
1 KiB
PHP
40 lines
1 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @file
|
|
* Contains \Drupal\file\FileUsage\FileUsageBase.
|
|
*/
|
|
|
|
namespace Drupal\file\FileUsage;
|
|
|
|
use Drupal\file\FileInterface;
|
|
|
|
/**
|
|
* Defines the base class for database file usage backend.
|
|
*/
|
|
abstract class FileUsageBase implements FileUsageInterface {
|
|
|
|
/**
|
|
* Implements Drupal\file\FileUsage\FileUsageInterface::add().
|
|
*/
|
|
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();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Implements Drupal\file\FileUsage\FileUsageInterface::delete().
|
|
*/
|
|
public function delete(FileInterface $file, $module, $type = NULL, $id = NULL, $count = 1) {
|
|
// 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();
|
|
}
|
|
}
|
|
}
|