public function FeaturesAssignmentPackages::assignPackages in Features 8.4
Same name and namespace in other branches
- 8.3 src/Plugin/FeaturesAssignment/FeaturesAssignmentPackages.php \Drupal\features\Plugin\FeaturesAssignment\FeaturesAssignmentPackages::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/ FeaturesAssignmentPackages.php, line 22
Class
- FeaturesAssignmentPackages
- Class for assigning existing modules to packages.
Namespace
Drupal\features\Plugin\FeaturesAssignmentCode
public function assignPackages($force = FALSE) {
$bundle = $this->assigner
->getBundle();
$existing = $this->featuresManager
->getFeaturesModules();
foreach ($existing as $extension) {
$package = $this->featuresManager
->initPackageFromExtension($extension);
$short_name = $package
->getMachineName();
// Copy over package excluded settings, if any.
if ($package
->getExcluded()) {
$config_collection = $this->featuresManager
->getConfigCollection();
foreach ($package
->getExcluded() as $config_name) {
if (isset($config_collection[$config_name])) {
$package_excluded = $config_collection[$config_name]
->getPackageExcluded();
$package_excluded[] = $short_name;
$config_collection[$config_name]
->setPackageExcluded($package_excluded);
}
}
$this->featuresManager
->setConfigCollection($config_collection);
}
// Assign required components, if any.
if ($package
->getRequired() !== FALSE) {
$config = $package
->getRequired();
if (empty($config) || !is_array($config)) {
// If required is "true" or empty, add all config as required.
$config = $this->featuresManager
->listExtensionConfig($extension);
}
$this->featuresManager
->assignConfigPackage($short_name, $config);
}
}
}