public function AssetCollectionIterator::current

Returns a copy of the current asset with filters and a target URL applied.

Parameters

Boolean $raw Returns the unmodified asset if true:

1 call to AssetCollectionIterator::current()
AssetCollectionIterator::getChildren in drupal/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/Iterator/AssetCollectionIterator.php
@uses current()

File

drupal/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/Iterator/AssetCollectionIterator.php, line 50

Class

AssetCollectionIterator
Iterates over an asset collection.

Namespace

Assetic\Asset\Iterator

Code

public function current($raw = false) {
  $asset = current($this->assets);
  if ($raw) {
    return $asset;
  }

  // clone once
  if (!isset($this->clones[$asset])) {
    $clone = $this->clones[$asset] = clone $asset;

    // generate a target path based on asset name
    $name = sprintf('%s_%d', pathinfo($asset
      ->getSourcePath(), PATHINFO_FILENAME) ?: 'part', $this
      ->key() + 1);
    $clone
      ->setTargetPath(str_replace('*', $name, $this->output));
  }
  else {
    $clone = $this->clones[$asset];
  }

  // cascade filters
  foreach ($this->filters as $filter) {
    $clone
      ->ensureFilter($filter);
  }
  return $clone;
}