You are here

protected function CssOptimizer::optimizeFile in Advanced CSS/JS Aggregation 8.4

Same name and namespace in other branches
  1. 8.3 src/Asset/CssOptimizer.php \Drupal\advagg\Asset\CssOptimizer::optimizeFile()

Perform any in-place optimization & pass to event for further optimization.

Parameters

array $asset: Core single asset definition array.

array $data: An array of extra file information (hashes, modification time etc).

Return value

bool|string False if contents unchanged or the new file path if optimized.

Overrides AssetOptimizer::optimizeFile

File

src/Asset/CssOptimizer.php, line 84

Class

CssOptimizer
The CSS Optimizer.

Namespace

Drupal\advagg\Asset

Code

protected function optimizeFile(array &$asset, array $data) {
  $contents = $this
    ->updateUrls($data['contents'], $asset['data']);
  if ($this->config
    ->get('css.combine_media') && $asset['media'] !== 'all') {
    $contents = "@media {$asset['media']}{{$contents}}";
    $asset['media'] = 'all';
  }
  $asset_event = new AssetOptimizationEvent($contents, $asset, $data);
  $this->eventDispatcher
    ->dispatch(AssetOptimizationEvent::CSS, $asset_event);
  $contents = $asset_event
    ->getContent();
  $asset = $asset_event
    ->getAsset();

  // If file contents are unaltered return FALSE.
  if ($contents === $data['contents'] && !$this->gZip) {
    return FALSE;
  }
  return $this
    ->writeFile($contents, $data['cid']);
}