You are here

function hal_update_8301 in Drupal 8

Move 'link_domain' from 'rest.settings' to 'hal.settings'.

File

core/modules/hal/hal.install, line 11
Update functions for the HAL module.

Code

function hal_update_8301() {
  $config_factory = \Drupal::configFactory();

  // The default value for the 'link_domain' key is `~`, which is the YAML
  // equivalent of PHP's `NULL`. If the REST module is not installed, this is
  // the value we will store in 'hal.settings'.
  $link_domain = NULL;

  // But if the REST module was installed, we migrate its 'link_domain' setting,
  // because we are actually moving that setting from 'rest.settings' to
  // 'hal.settings'.
  $rest_settings = $config_factory
    ->getEditable('rest.settings');
  if ($rest_settings
    ->getRawData() !== []) {
    $link_domain = $rest_settings
      ->get('link_domain');

    // Remove the 'link_domain' setting from 'rest.settings'.
    $rest_settings
      ->clear('link_domain')
      ->save();
  }
  $hal_settings = $config_factory
    ->getEditable('hal.settings');
  $hal_settings
    ->set('link_domain', $link_domain);
  $hal_settings
    ->save(TRUE);
}