comparison core/lib/Drupal/Core/Asset/CssCollectionOptimizer.php @ 5:12f9dff5fda9 tip

Update to Drupal core 8.7.1
author Chris Cannam
date Thu, 09 May 2019 15:34:47 +0100
parents c75dbcec494b
children
comparison
equal deleted inserted replaced
4:a9cd425dd02b 5:12f9dff5fda9
1 <?php 1 <?php
2 2
3 namespace Drupal\Core\Asset; 3 namespace Drupal\Core\Asset;
4 4
5 use Drupal\Core\File\FileSystemInterface;
5 use Drupal\Core\State\StateInterface; 6 use Drupal\Core\State\StateInterface;
6 7
7 /** 8 /**
8 * Optimizes CSS assets. 9 * Optimizes CSS assets.
9 */ 10 */
34 * The state key/value store. 35 * The state key/value store.
35 * 36 *
36 * @var \Drupal\Core\State\StateInterface 37 * @var \Drupal\Core\State\StateInterface
37 */ 38 */
38 protected $state; 39 protected $state;
40
41 /**
42 * The file system service.
43 *
44 * @var \Drupal\Core\File\FileSystemInterface
45 */
46 protected $fileSystem;
39 47
40 /** 48 /**
41 * Constructs a CssCollectionOptimizer. 49 * Constructs a CssCollectionOptimizer.
42 * 50 *
43 * @param \Drupal\Core\Asset\AssetCollectionGrouperInterface $grouper 51 * @param \Drupal\Core\Asset\AssetCollectionGrouperInterface $grouper
46 * The optimizer for a single CSS asset. 54 * The optimizer for a single CSS asset.
47 * @param \Drupal\Core\Asset\AssetDumperInterface $dumper 55 * @param \Drupal\Core\Asset\AssetDumperInterface $dumper
48 * The dumper for optimized CSS assets. 56 * The dumper for optimized CSS assets.
49 * @param \Drupal\Core\State\StateInterface $state 57 * @param \Drupal\Core\State\StateInterface $state
50 * The state key/value store. 58 * The state key/value store.
51 */ 59 * @param \Drupal\Core\File\FileSystemInterface $file_system
52 public function __construct(AssetCollectionGrouperInterface $grouper, AssetOptimizerInterface $optimizer, AssetDumperInterface $dumper, StateInterface $state) { 60 * The file system service.
61 */
62 public function __construct(AssetCollectionGrouperInterface $grouper, AssetOptimizerInterface $optimizer, AssetDumperInterface $dumper, StateInterface $state, FileSystemInterface $file_system = NULL) {
53 $this->grouper = $grouper; 63 $this->grouper = $grouper;
54 $this->optimizer = $optimizer; 64 $this->optimizer = $optimizer;
55 $this->dumper = $dumper; 65 $this->dumper = $dumper;
56 $this->state = $state; 66 $this->state = $state;
67 if (!$file_system) {
68 @trigger_error('The file_system service must be passed to CssCollectionOptimizer::__construct(), it is required before Drupal 9.0.0. See https://www.drupal.org/node/3006851.', E_USER_DEPRECATED);
69 $file_system = \Drupal::service('file_system');
70 }
71 $this->fileSystem = $file_system;
57 } 72 }
58 73
59 /** 74 /**
60 * {@inheritdoc} 75 * {@inheritdoc}
61 * 76 *
176 $this->state->delete('drupal_css_cache_files'); 191 $this->state->delete('drupal_css_cache_files');
177 192
178 $delete_stale = function ($uri) { 193 $delete_stale = function ($uri) {
179 // Default stale file threshold is 30 days. 194 // Default stale file threshold is 30 days.
180 if (REQUEST_TIME - filemtime($uri) > \Drupal::config('system.performance')->get('stale_file_threshold')) { 195 if (REQUEST_TIME - filemtime($uri) > \Drupal::config('system.performance')->get('stale_file_threshold')) {
181 file_unmanaged_delete($uri); 196 $this->fileSystem->delete($uri);
182 } 197 }
183 }; 198 };
184 file_scan_directory('public://css', '/.*/', ['callback' => $delete_stale]); 199 file_scan_directory('public://css', '/.*/', ['callback' => $delete_stale]);
185 } 200 }
186 201