Same name and namespace in other branches
  1. 6.0.x src/Asset/CssOptimizer.php \Drupal\advagg\Asset\CssOptimizer::optimizeFile()
  2. 8.x-3.x src/Asset/CssOptimizer.php \Drupal\advagg\Asset\CssOptimizer::optimizeFile()
  3. 8.x-4.x 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']);
}