class PackagerFilter

Runs assets through Packager.

@link https://github.com/kamicane/packager @author Kris Wallsmith <kris.wallsmith@gmail.com>

Hierarchy

Expanded class hierarchy of PackagerFilter

File

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

Namespace

Assetic\Filter
View source
class PackagerFilter implements FilterInterface {
  private $packages;
  public function __construct(array $packages = array()) {
    $this->packages = $packages;
  }
  public function addPackage($package) {
    $this->packages[] = $package;
  }
  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);
  }
  public function filterDump(AssetInterface $asset) {
  }

}

Members

Namesort descending Modifiers Type Description Overrides
PackagerFilter::$packages private property
PackagerFilter::addPackage public function
PackagerFilter::filterDump public function Filters an asset just before it's dumped. Overrides FilterInterface::filterDump
PackagerFilter::filterLoad public function Filters an asset after it has been loaded. Overrides FilterInterface::filterLoad
PackagerFilter::__construct public function