Same name and namespace in other branches
  1. 8.9.x core/lib/Drupal/Core/Config/ConfigFactory.php \Drupal\Core\Config\ConfigFactory::rename()
  2. 9 core/lib/Drupal/Core/Config/ConfigFactory.php \Drupal\Core\Config\ConfigFactory::rename()

File

core/lib/Drupal/Core/Config/ConfigFactory.php, line 252

Class

ConfigFactory
Defines the configuration object factory.

Namespace

Drupal\Core\Config

Code

public function rename($old_name, $new_name) {
  Cache::invalidateTags($this
    ->get($old_name)
    ->getCacheTags());
  $this->storage
    ->rename($old_name, $new_name);

  // Clear out the static cache of any references to the old name.
  foreach ($this
    ->getConfigCacheKeys($old_name) as $old_cache_key) {
    unset($this->cache[$old_cache_key]);
  }

  // Prime the cache and load the configuration with the correct overrides.
  $config = $this
    ->get($new_name);
  $event_name = $this->storage
    ->getCollectionName() === StorageInterface::DEFAULT_COLLECTION ? ConfigEvents::RENAME : ConfigCollectionEvents::RENAME_IN_COLLECTION;
  $this->eventDispatcher
    ->dispatch(new ConfigRenameEvent($config, $old_name), $event_name);
  return $this;
}