You are here

public function ConfigInstaller::installCollectionDefaultConfig in Drupal 8

Same name in this branch
  1. 8 core/lib/Drupal/Core/Config/ConfigInstaller.php \Drupal\Core\Config\ConfigInstaller::installCollectionDefaultConfig()
  2. 8 core/lib/Drupal/Core/ProxyClass/Config/ConfigInstaller.php \Drupal\Core\ProxyClass\Config\ConfigInstaller::installCollectionDefaultConfig()
Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Config/ConfigInstaller.php \Drupal\Core\Config\ConfigInstaller::installCollectionDefaultConfig()

Installs all default configuration in the specified collection.

The function is useful if the site needs to respond to an event that has just created another collection and we need to check all the installed extensions for any matching configuration. For example, if a language has just been created.

Parameters

string $collection: The configuration collection.

Overrides ConfigInstallerInterface::installCollectionDefaultConfig

File

core/lib/Drupal/Core/Config/ConfigInstaller.php, line 386

Class

ConfigInstaller

Namespace

Drupal\Core\Config

Code

public function installCollectionDefaultConfig($collection) {
  $storage = new ExtensionInstallStorage($this
    ->getActiveStorages(StorageInterface::DEFAULT_COLLECTION), InstallStorage::CONFIG_INSTALL_DIRECTORY, $collection, InstallerKernel::installationAttempted(), $this->installProfile);

  // Only install configuration for enabled extensions.
  $enabled_extensions = $this
    ->getEnabledExtensions();
  $config_to_install = array_filter($storage
    ->listAll(), function ($config_name) use ($enabled_extensions) {
    $provider = mb_substr($config_name, 0, strpos($config_name, '.'));
    return in_array($provider, $enabled_extensions);
  });
  if (!empty($config_to_install)) {
    $this
      ->createConfiguration($collection, $storage
      ->readMultiple($config_to_install));

    // Reset all the static caches and list caches.
    $this->configFactory
      ->reset();
  }
}