ConfigImporter::processExtension

protected ConfigImporter::processExtension($type, $op, $name)

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.

File

core/lib/Drupal/Core/Config/ConfigImporter.php, line 780

Class

ConfigImporter
Defines a configuration importer.

Namespace

Drupal\Core\Config

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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(array($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 from drupal_get_complete_schema(). 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;
    }
    $this->themeHandler->$op(array($name));
  }
 
  $this->setProcessedExtension($type, $op, $name);
}
doc_Drupal
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.