You are here

public function JsCollectionOptimizer::deleteAll in Flysystem 3.x

Same name and namespace in other branches
  1. 8 src/Asset/JsCollectionOptimizer.php \Drupal\flysystem\Asset\JsCollectionOptimizer::deleteAll()
  2. 2.0.x src/Asset/JsCollectionOptimizer.php \Drupal\flysystem\Asset\JsCollectionOptimizer::deleteAll()
  3. 3.0.x src/Asset/JsCollectionOptimizer.php \Drupal\flysystem\Asset\JsCollectionOptimizer::deleteAll()

Deletes all optimized asset collections assets.

Overrides JsCollectionOptimizer::deleteAll

File

src/Asset/JsCollectionOptimizer.php, line 17

Class

JsCollectionOptimizer
Optimizes JavaScript assets.

Namespace

Drupal\flysystem\Asset

Code

public function deleteAll() {
  $this->state
    ->delete('system.js_cache_files');

  /** @var \Drupal\Core\File\FileSystem $file_system */
  $file_system = \Drupal::service('file_system');
  $delete_stale = static function ($uri) use ($file_system) {

    // Default stale file threshold is 30 days (2592000 seconds).
    $stale_file_threshold = \Drupal::config('system.performance')
      ->get('stale_file_threshold') ?? 2592000;
    if (\Drupal::time()
      ->getRequestTime() - filemtime($uri) > $stale_file_threshold) {
      $file_system
        ->delete($uri);
    }
  };
  $file_system
    ->scanDirectory($this
    ->getSchemeForExtension('js') . '://js', '/.*/', [
    'callback' => $delete_stale,
  ]);
}