public function FeaturesManager::setPackageBundleNames in Features 8.4
Same name and namespace in other branches
- 8.3 src/FeaturesManager.php \Drupal\features\FeaturesManager::setPackageBundleNames()
Adds the optional bundle prefix to package machine names.
Parameters
\Drupal\features\FeaturesBundleInterface $bundle: The bundle used for the generation.
string[] &$package_names: (optional) Array of package names, passed by reference.
Overrides FeaturesManagerInterface::setPackageBundleNames
File
- src/
FeaturesManager.php, line 723
Class
- FeaturesManager
- The FeaturesManager provides helper functions for building packages.
Namespace
Drupal\featuresCode
public function setPackageBundleNames(FeaturesBundleInterface $bundle, array &$package_names = []) {
$this->packagesPrefixed = TRUE;
if (!$bundle
->isDefault()) {
$new_package_names = [];
// Assign the selected bundle to the exports.
$packages = $this
->getPackages();
if (empty($package_names)) {
$package_names = array_keys($packages);
}
foreach ($package_names as $package_name) {
// Rename package to use bundle prefix.
$package = $packages[$package_name];
// The install profile doesn't need renaming.
if ($package
->getType() != 'profile') {
unset($packages[$package_name]);
$package
->setMachineName($bundle
->getFullName($package
->getMachineName()));
$packages[$package
->getMachineName()] = $package;
}
// Set the bundle machine name.
$packages[$package
->getMachineName()]
->setBundle($bundle
->getMachineName());
$new_package_names[] = $package
->getMachineName();
}
$this
->setPackages($packages);
$package_names = $new_package_names;
}
}