ConfigProviderInstall.php in Configuration Provider 8
File
src/Plugin/ConfigProvider/ConfigProviderInstall.php
View source
<?php
namespace Drupal\config_provider\Plugin\ConfigProvider;
use Drupal\config_provider\InMemoryStorage;
use Drupal\config_provider\Plugin\ConfigProviderBase;
use Drupal\Core\Config\InstallStorage;
use Drupal\Core\Config\StorageInterface;
class ConfigProviderInstall extends ConfigProviderBase {
const ID = InstallStorage::CONFIG_INSTALL_DIRECTORY;
public function addConfigToCreate(array &$config_to_create, StorageInterface $storage, $collection, $prefix = '', array $profile_storages = []) {
}
public function addInstallableConfig(InMemoryStorage $installable_config, array $extensions = []) {
$storage = $this
->getExtensionInstallStorage(static::ID);
$config_names = $this
->listConfig($storage, $extensions);
$config_to_add = $storage
->readMultiple($config_names);
foreach ($config_to_add as $name => $data) {
$installable_config
->write($name, $data);
}
$collection_info = $this->configManager
->getConfigCollectionInfo();
foreach ($collection_info
->getCollectionNames() as $collection) {
$collection_storage = $storage
->createCollection($collection);
$config_names = $this
->listConfig($collection_storage, $extensions);
$config_to_add = $collection_storage
->readMultiple($config_names);
foreach ($config_to_add as $name => $data) {
$installable_config
->writeToCollection($name, $data, $collection);
}
}
}
}