You are here

public function FeaturesAssignmentExisting::assignPackages in Features 8.4

Same name and namespace in other branches
  1. 8.3 src/Plugin/FeaturesAssignment/FeaturesAssignmentExisting.php \Drupal\features\Plugin\FeaturesAssignment\FeaturesAssignmentExisting::assignPackages()

Performs package assignment.

Parameters

bool $force: (optional) If TRUE, assign config regardless of restrictions such as it being already assigned to a package.

Overrides FeaturesAssignmentMethodInterface::assignPackages

File

src/Plugin/FeaturesAssignment/FeaturesAssignmentExisting.php, line 42

Class

FeaturesAssignmentExisting
Class for assigning existing modules to packages.

Namespace

Drupal\features\Plugin\FeaturesAssignment

Code

public function assignPackages($force = FALSE) {
  $packages = $this->featuresManager
    ->getPackages();

  // Assign config to installed modules first.
  foreach ($packages as $name => $package) {

    // @todo Introduce $package->isInstalled() and / or $package->isUninstalled().
    if ($package
      ->getStatus() === FeaturesManagerInterface::STATUS_INSTALLED) {
      $this
        ->safeAssignConfig($package
        ->getMachineName(), $package
        ->getExtension());
    }
  }

  // Now assign to uninstalled modules.
  foreach ($packages as $name => $package) {
    if ($package
      ->getStatus() === FeaturesManagerInterface::STATUS_UNINSTALLED) {
      $this
        ->safeAssignConfig($package
        ->getMachineName(), $package
        ->getExtension());
    }
  }
}