You are here

protected function FeaturesManager::getConfigDependency in Features 8.3

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

Helper function to update dependencies array for a specific config item.

Parameters

\Drupal\features\ConfigurationItem $config: a config item.

array $module_list:

Return value

array $dependencies

2 calls to FeaturesManager::getConfigDependency()
FeaturesManager::assignConfigPackage in src/FeaturesManager.php
Assigns a set of configuration items to a given package or profile.
FeaturesManager::assignPackageDependencies in src/FeaturesManager.php
Assigns dependencies from config items into the package.

File

src/FeaturesManager.php, line 564

Class

FeaturesManager
The FeaturesManager provides helper functions for building packages.

Namespace

Drupal\features

Code

protected function getConfigDependency(ConfigurationItem $config, array $module_list = []) {
  $dependencies = [];
  $type = $config
    ->getType();

  // For configuration in the InstallStorage::CONFIG_INSTALL_DIRECTORY
  // directory, set any dependencies of the configuration item as package
  // dependencies.
  // As its name implies, the core-provided
  // InstallStorage::CONFIG_OPTIONAL_DIRECTORY should not create
  // dependencies.
  if ($config
    ->getSubdirectory() === InstallStorage::CONFIG_INSTALL_DIRECTORY) {
    if ($type === FeaturesManagerInterface::SYSTEM_SIMPLE_CONFIG) {
      $dependencies[] = strtok($config
        ->getName(), '.');
    }
    else {
      $dependencies[] = $this->entityTypeManager
        ->getDefinition($type)
        ->getProvider();
    }
    if (isset($config
      ->getData()['dependencies']['module'])) {
      $dependencies = array_merge($dependencies, $config
        ->getData()['dependencies']['module']);
    }

    // Only return dependencies for installed modules and not, for example,
    // 'core'.
    $dependencies = array_intersect($dependencies, array_keys($module_list));
  }
  return $dependencies;
}