function hook_config_import_change

Update configuration upon synchronizing configuration changes.

This callback is invoked when configuration is synchronized between storages and allows a module to take over the synchronization of configuration data.

Modules should implement this callback if they manage configuration data (such as image styles, node types, or fields) which needs to be prepared and passed through module API functions to properly handle a configuration change.

Parameters

string $name: The name of the configuration object.

Drupal\Core\Config\Config $new_config: A configuration object containing the new configuration data.

Drupal\Core\Config\Config $old_config: A configuration object containing the old configuration data.

3 functions implement hook_config_import_change()

Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.

config_test_config_import_change in drupal/core/modules/config/tests/config_test/config_test.module
Implements hook_config_import_change().
contact_config_import_change in drupal/core/modules/contact/contact.module
Implements MODULE_config_import_change().
image_config_import_change in drupal/core/modules/image/image.module
Implements hook_config_import_change().

File

drupal/core/modules/config/config.api.php, line 62
Hooks provided by the Configuration module.

Code

function hook_config_import_change($name, $new_config, $old_config) {

  // Only configuration entities require custom handling. Any other module
  // settings can be synchronized directly.
  if (strpos($name, 'config_test.dynamic.') !== 0) {
    return FALSE;
  }

  // @todo Make this less ugly.
  list($entity_type) = explode('.', $name);
  $entity_info = entity_get_info($entity_type);
  $id = substr($name, strlen($entity_info['config_prefix']) + 1);
  $config_test = entity_load('config_test', $id);

  // Store the original config, and iterate through each property to store it.
  $config_test->original = clone $config_test;
  foreach ($old_config
    ->get() as $property => $value) {
    $config_test->original->{$property} = $value;
  }

  // Iterate through each property of the new config, copying it to the test
  // object.
  foreach ($new_config
    ->get() as $property => $value) {
    $config_test->{$property} = $value;
  }
  $config_test
    ->save();
  return TRUE;
}