function ConfigManager::uninstall

Same name in other branches
  1. 9 core/lib/Drupal/Core/Config/ConfigManager.php \Drupal\Core\Config\ConfigManager::uninstall()
  2. 10 core/lib/Drupal/Core/Config/ConfigManager.php \Drupal\Core\Config\ConfigManager::uninstall()
  3. 11.x core/lib/Drupal/Core/Config/ConfigManager.php \Drupal\Core\Config\ConfigManager::uninstall()

Overrides ConfigManagerInterface::uninstall

File

core/lib/Drupal/Core/Config/ConfigManager.php, line 217

Class

ConfigManager
The ConfigManager provides helper functions for the configuration system.

Namespace

Drupal\Core\Config

Code

public function uninstall($type, $name) {
    $entities = $this->getConfigEntitiesToChangeOnDependencyRemoval($type, [
        $name,
    ], FALSE);
    // Fix all dependent configuration entities.
    
    /** @var \Drupal\Core\Config\Entity\ConfigEntityInterface $entity */
    foreach ($entities['update'] as $entity) {
        $entity->save();
    }
    // Remove all dependent configuration entities.
    foreach ($entities['delete'] as $entity) {
        $entity->setUninstalling(TRUE);
        $entity->delete();
    }
    $config_names = $this->configFactory
        ->listAll($name . '.');
    foreach ($config_names as $config_name) {
        $this->configFactory
            ->getEditable($config_name)
            ->delete();
    }
    // Remove any matching configuration from collections.
    foreach ($this->activeStorage
        ->getAllCollectionNames() as $collection) {
        $collection_storage = $this->activeStorage
            ->createCollection($collection);
        $collection_storage->deleteAll($name . '.');
    }
    $schema_dir = drupal_get_path($type, $name) . '/' . InstallStorage::CONFIG_SCHEMA_DIRECTORY;
    if (is_dir($schema_dir)) {
        // Refresh the schema cache if uninstalling an extension that provides
        // configuration schema.
        $this->typedConfigManager
            ->clearCachedDefinitions();
    }
}

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