public DrupalKernel::updateModules(array $module_list, array $module_filenames = array())
Implements Drupal\Core\DrupalKernelInterface::updateModules().
@todo Remove obsolete $module_list parameter. Only $module_filenames is needed.
Overrides DrupalKernelInterface::updateModules
File
- core/lib/Drupal/Core/DrupalKernel.php, line 759
Class
- DrupalKernel
- The DrupalKernel class is the core of Drupal itself.
Namespace
Drupal\Core
Code
public function updateModules(array $module_list, array $module_filenames = array()) { $pre_existing_module_namespaces = []; if ($this->booted && is_array($this->moduleList)) { $pre_existing_module_namespaces = $this->getModuleNamespacesPsr4($this->getModuleFileNames()); } $this->moduleList = $module_list; foreach ($module_filenames as $name => $extension) { $this->moduleData[$name] = $extension; } // If we haven't yet booted, we don't need to do anything: the new module // list will take effect when boot() is called. However we set a // flag that the container needs a rebuild, so that a potentially cached // container is not used. If we have already booted, then rebuild the // container in order to refresh the serviceProvider list and container. $this->containerNeedsRebuild = TRUE; if ($this->booted) { // We need to register any new namespaces to a new class loader because // the current class loader might have stored a negative result for a // class that is now available. // @see \Composer\Autoload\ClassLoader::findFile() $new_namespaces = array_diff_key( $this->getModuleNamespacesPsr4($this->getModuleFileNames()), $pre_existing_module_namespaces ); if (!empty($new_namespaces)) { $additional_class_loader = new ClassLoader(); $this->classLoaderAddMultiplePsr4($new_namespaces, $additional_class_loader); $additional_class_loader->register(); } $this->initializeContainer(); } }
Please login to continue.