You are here

public function FeaturesManager::assignPackageDependencies in Features 8.3

Same name and namespace in other branches
  1. 8.4 src/FeaturesManager.php \Drupal\features\FeaturesManager::assignPackageDependencies()

Assigns dependencies from config items into the package.

Parameters

\Drupal\features\Package[] $package: An array of packages. NULL for all packages.

Overrides FeaturesManagerInterface::assignPackageDependencies

File

src/FeaturesManager.php, line 755

Class

FeaturesManager
The FeaturesManager provides helper functions for building packages.

Namespace

Drupal\features

Code

public function assignPackageDependencies(Package $package = NULL) {
  if (is_null($package)) {
    $packages = $this
      ->getPackages();
  }
  else {
    $packages = [
      $package,
    ];
  }
  $module_list = $this->moduleHandler
    ->getModuleList();
  $config_collection = $this
    ->getConfigCollection();
  foreach ($packages as $package) {
    $module_dependencies = [];
    foreach ($package
      ->getConfig() as $item_name) {
      if (isset($config_collection[$item_name])) {
        $dependencies = $this
          ->getConfigDependency($config_collection[$item_name], $module_list);
        $module_dependencies = array_merge($module_dependencies, $dependencies);
      }
    }
    $package
      ->setDependencies($this
      ->mergeUniqueItems($package
      ->getDependencies(), $module_dependencies));
  }
}