public function PackagerFilter::filterLoad

Filters an asset after it has been loaded.

Parameters

AssetInterface $asset An asset:

Overrides FilterInterface::filterLoad

File

drupal/core/vendor/kriswallsmith/assetic/src/Assetic/Filter/PackagerFilter.php, line 36

Class

PackagerFilter
Runs assets through Packager.

Namespace

Assetic\Filter

Code

public function filterLoad(AssetInterface $asset) {
  static $manifest = <<<EOF
name: Application%s
sources: [source.js]

EOF;
  $hash = substr(sha1(time() . rand(11111, 99999)), 0, 7);
  $package = sys_get_temp_dir() . '/assetic_packager_' . $hash;
  mkdir($package);
  file_put_contents($package . '/package.yml', sprintf($manifest, $hash));
  file_put_contents($package . '/source.js', $asset
    ->getContent());
  $packager = new \Packager(array_merge(array(
    $package,
  ), $this->packages));
  $content = $packager
    ->build(array(), array(), array(
    'Application' . $hash,
  ));
  unlink($package . '/package.yml');
  unlink($package . '/source.js');
  rmdir($package);
  $asset
    ->setContent($content);
}