You are here

public function ConfigImporterService::importConfigs in Config Importer and Tools 8.0

Same name and namespace in other branches
  1. 8.2 src/ConfigImporterService.php \Drupal\config_import\ConfigImporterService::importConfigs()
  2. 8 src/ConfigImporterService.php \Drupal\config_import\ConfigImporterService::importConfigs()

Import config files.

Parameters

array $files: Config files to import.

Overrides ConfigImporterServiceInterface::importConfigs

File

src/ConfigImporterService.php, line 151

Class

ConfigImporterService
Class ConfigImporterService.

Namespace

Drupal\config_import

Code

public function importConfigs(array $files) {

  // @todo The next string doesn't work during installation. Hardcode it.
  // $uri = 'temporary://confi_tmp_' . $this->uuid->->generate();
  $tmp_dir = '/tmp/confi_tmp_' . $this->uuid
    ->generate();

  // Save current configuration and disable file cache for config import.
  // @see https://www.drupal.org/node/2758325
  $file_cache_config = FileCacheFactory::getConfiguration();
  FileCacheFactory::setConfiguration([
    FileCacheFactory::DISABLE_CACHE => TRUE,
  ]);
  try {
    $this
      ->export($tmp_dir);
  } catch (Exception $e) {
    throw new ConfigImporterException($e
      ->getMessage());
  }
  foreach ($files as $source) {
    file_unmanaged_copy($source, $tmp_dir, FILE_EXISTS_REPLACE);
  }
  $this
    ->import($tmp_dir);

  // Restore file cache settings.
  FileCacheFactory::setConfiguration($file_cache_config);
}