class UnpackCollection

A collection with packages to unpack.

@internal

Hierarchy

  • class \Drupal\Composer\Plugin\RecipeUnpack\UnpackCollection extends \Drupal\Composer\Plugin\RecipeUnpack\Iterator, \Drupal\Composer\Plugin\RecipeUnpack\Countable

Expanded class hierarchy of UnpackCollection

File

composer/Plugin/RecipeUnpack/UnpackCollection.php, line 12

Namespace

Drupal\Composer\Plugin\RecipeUnpack
View source
final class UnpackCollection implements \Iterator, \Countable {
  
  /**
   * The queue of packages to unpack.
   *
   * @var \Composer\Package\PackageInterface[]
   */
  private array $packagesToUnpack = [];
  
  /**
   * The list of packages that have been unpacked.
   *
   * @var array<string, \Composer\Package\PackageInterface>
   */
  private array $unpackedPackages = [];
  
  /**
   * {@inheritdoc}
   */
  public function rewind() : void {
    reset($this->packagesToUnpack);
  }
  
  /**
   * {@inheritdoc}
   */
  public function current() : PackageInterface|false {
    return current($this->packagesToUnpack);
  }
  
  /**
   * {@inheritdoc}
   */
  public function key() : ?string {
    return key($this->packagesToUnpack);
  }
  
  /**
   * {@inheritdoc}
   */
  public function next() : void {
    next($this->packagesToUnpack);
  }
  
  /**
   * {@inheritdoc}
   */
  public function valid() : bool {
    return current($this->packagesToUnpack) !== FALSE;
  }
  
  /**
   * {@inheritdoc}
   */
  public function count() : int {
    return count($this->packagesToUnpack);
  }
  
  /**
   * Adds a package to the queue of packages to unpack.
   *
   * @param \Composer\Package\PackageInterface $package
   *   The package to add to the queue.
   */
  public function add(PackageInterface $package) : self {
    $this->packagesToUnpack[$package->getUniqueName()] = $package;
    return $this;
  }
  
  /**
   * Marks a package as unpacked.
   *
   * @param \Composer\Package\PackageInterface $package
   *   The package that has been unpacked.
   */
  public function markPackageUnpacked(PackageInterface $package) : void {
    $this->unpackedPackages[$package->getUniqueName()] = $package;
  }
  
  /**
   * Checks if a package has been unpacked, or it's queued for unpacking.
   *
   * @param \Composer\Package\PackageInterface $package
   *   The package to check.
   *
   * @return bool
   *   TRUE if the package has been unpacked.
   */
  public function isUnpacked(PackageInterface $package) : bool {
    return isset($this->unpackedPackages[$package->getUniqueName()]);
  }

}

Members

Title Sort descending Modifiers Object type Summary
UnpackCollection::$packagesToUnpack private property The queue of packages to unpack.
UnpackCollection::$unpackedPackages private property The list of packages that have been unpacked.
UnpackCollection::add public function Adds a package to the queue of packages to unpack.
UnpackCollection::count public function
UnpackCollection::current public function
UnpackCollection::isUnpacked public function Checks if a package has been unpacked, or it&#039;s queued for unpacking.
UnpackCollection::key public function
UnpackCollection::markPackageUnpacked public function Marks a package as unpacked.
UnpackCollection::next public function
UnpackCollection::rewind public function
UnpackCollection::valid public function

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.