function ConfigImporter::processExtension
Same name in other branches
- 9 core/lib/Drupal/Core/Config/ConfigImporter.php \Drupal\Core\Config\ConfigImporter::processExtension()
- 10 core/lib/Drupal/Core/Config/ConfigImporter.php \Drupal\Core\Config\ConfigImporter::processExtension()
- 11.x core/lib/Drupal/Core/Config/ConfigImporter.php \Drupal\Core\Config\ConfigImporter::processExtension()
Processes an extension change.
Parameters
string $type: The type of extension, either 'module' or 'theme'.
string $op: The change operation.
string $name: The name of the extension to process.
1 call to ConfigImporter::processExtension()
- ConfigImporter::processExtensions in core/
lib/ Drupal/ Core/ Config/ ConfigImporter.php - Processes extensions as a batch operation.
File
-
core/
lib/ Drupal/ Core/ Config/ ConfigImporter.php, line 807
Class
- ConfigImporter
- Defines a configuration importer.
Namespace
Drupal\Core\ConfigCode
protected function processExtension($type, $op, $name) {
// Set the config installer to use the sync directory instead of the
// extensions own default config directories.
\Drupal::service('config.installer')->setSourceStorage($this->storageComparer
->getSourceStorage());
if ($type == 'module') {
$this->moduleInstaller
->{$op}([
$name,
], FALSE);
// Installing a module can cause a kernel boot therefore reinject all the
// services.
$this->reInjectMe();
// During a module install or uninstall the container is rebuilt and the
// module handler is called. This causes the container's instance of the
// module handler not to have loaded all the enabled modules.
$this->moduleHandler
->loadAll();
}
if ($type == 'theme') {
// Theme uninstalls possible remove default or admin themes therefore we
// need to import this before doing any. If there are no uninstalls and
// the default or admin theme is changing this will be picked up whilst
// processing configuration.
if ($op == 'uninstall' && $this->processedSystemTheme === FALSE) {
$this->importConfig(StorageInterface::DEFAULT_COLLECTION, 'update', 'system.theme');
$this->configManager
->getConfigFactory()
->reset('system.theme');
$this->processedSystemTheme = TRUE;
}
\Drupal::service('theme_installer')->{$op}([
$name,
]);
}
$this->setProcessedExtension($type, $op, $name);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.