You are here

function config_split_update_8002 in Configuration Split 2.0.x

Change the config schema for split entities.

File

./config_split.install, line 20

Code

function config_split_update_8002() {
  $configFactory = \Drupal::configFactory();
  foreach ($configFactory
    ->listAll('config_split.config_split') as $name) {
    $split = $configFactory
      ->getEditable($name);
    $data = $split
      ->getRawData();
    if (!isset($data['storage'])) {
      $key = array_search('folder', array_keys($data), TRUE);
      $data = array_slice($data, 0, $key, TRUE) + [
        'storage' => $data['folder'] === '' ? 'database' : 'folder',
      ] + array_slice($data, $key, NULL, TRUE);
    }
    foreach ([
      'black' => 'complete',
      'gray' => 'partial',
    ] as $list => $new) {
      $list .= 'list';
      $new .= '_list';
      if (!isset($data[$new])) {
        $data[$new] = $data[$list] ?? [];
      }
      unset($data[$list]);
      unset($data[$list . '_dependents']);
      unset($data[$list . '_skip_equal']);
    }
    $split
      ->setData($data);
    $split
      ->save(TRUE);
  }
}