protected function FeaturesUIController::getConfigDependents in Features 8.4
Same name and namespace in other branches
- 8.3 modules/features_ui/src/Controller/FeaturesUIController.php \Drupal\features_ui\Controller\FeaturesUIController::getConfigDependents()
Returns the configuration dependent on given items.
Parameters
array $item_names: An array of item names.
string $package_name: Short machine name of feature to process.
Return value
array An array of config items.
1 call to FeaturesUIController::getConfigDependents()
- FeaturesUIController::detect in modules/
features_ui/ src/ Controller/ FeaturesUIController.php - Returns a list of auto-detected config items for a feature.
File
- modules/
features_ui/ src/ Controller/ FeaturesUIController.php, line 104
Class
- FeaturesUIController
- Returns ajax responses for the Features UI.
Namespace
Drupal\features_ui\ControllerCode
protected function getConfigDependents(array $item_names, $package_name) {
$result = [];
$config_collection = $this->featuresManager
->getConfigCollection();
$packages = $this->featuresManager
->getPackages();
$settings = $this->featuresManager
->getSettings();
$allow_conflicts = $settings
->get('conflicts');
if (empty($item_names)) {
$item_names = array_keys($config_collection);
}
// Add any existing auto-detected items already in the package config.
$this->package = $packages[$package_name];
$package_config = isset($this->package) ? $this->package
->getConfig() : [];
$package_config = !empty($package_config) ? array_unique(array_merge($package_config, $item_names)) : $item_names;
foreach ($package_config as $config_name) {
if (!$config_collection[$config_name]
->getPackageExcluded()) {
$result[] = $config_name;
}
}
// Now add dependents of the items selected.
foreach ($item_names as $item_name) {
if ($config_collection[$item_name]
->getPackage()) {
foreach ($config_collection[$item_name]
->getDependents() as $dependent_item_name) {
if (isset($config_collection[$dependent_item_name])) {
$allow = TRUE;
if (!$allow_conflicts && $config_collection[$dependent_item_name]
->getPackage()) {
if ($packages[$config_collection[$dependent_item_name]
->getPackage()]) {
$allow = $packages[$config_collection[$dependent_item_name]
->getPackage()]
->getStatus() == FeaturesManagerInterface::STATUS_NO_EXPORT || $config_collection[$item_name]
->getPackage() == $config_collection[$dependent_item_name]
->getPackage();
}
}
if ($allow) {
$result[] = $dependent_item_name;
}
}
}
}
}
return $result;
}