c90359be8b09f91818bcfa400a85b3b8ef770b0b
[yaffs-website] / web / core / modules / file / src / FileUsage / FileUsageBase.php
1 <?php
2
3 namespace Drupal\file\FileUsage;
4
5 use Drupal\file\FileInterface;
6
7 /**
8  * Defines the base class for database file usage backend.
9  */
10 abstract class FileUsageBase implements FileUsageInterface {
11
12   /**
13    * {@inheritdoc}
14    */
15   public function add(FileInterface $file, $module, $type, $id, $count = 1) {
16     // Make sure that a used file is permanent.
17     if (!$file->isPermanent()) {
18       $file->setPermanent();
19       $file->save();
20     }
21   }
22
23   /**
24    * {@inheritdoc}
25    */
26   public function delete(FileInterface $file, $module, $type = NULL, $id = NULL, $count = 1) {
27     // If there are no more remaining usages of this file, mark it as temporary,
28     // which result in a delete through system_cron().
29     $usage = \Drupal::service('file.usage')->listUsage($file);
30     if (empty($usage)) {
31       $file->setTemporary();
32       $file->save();
33     }
34   }
35
36 }