function hal_update_8301

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

File

core/modules/hal/hal.install, line 11

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);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.