configFactory = $config_factory ?: \Drupal::configFactory(); } /** * {@inheritdoc} */ 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(); } } /** * {@inheritdoc} */ 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(); } } }