public DrupalKernel::discoverServiceProviders()
Discovers available serviceProviders.
Return value
array The available serviceProviders.
Overrides DrupalKernelInterface::discoverServiceProviders
File
- core/lib/Drupal/Core/DrupalKernel.php, line 567
Class
- DrupalKernel
- The DrupalKernel class is the core of Drupal itself.
Namespace
Drupal\Core
Code
public function discoverServiceProviders() { $this->serviceYamls = array( 'app' => array(), 'site' => array(), ); $this->serviceProviderClasses = array( 'app' => array(), 'site' => array(), ); $this->serviceYamls['app']['core'] = 'core/core.services.yml'; $this->serviceProviderClasses['app']['core'] = 'Drupal\Core\CoreServiceProvider'; // Retrieve enabled modules and register their namespaces. if (!isset($this->moduleList)) { $extensions = $this->getConfigStorage()->read('core.extension'); $this->moduleList = isset($extensions['module']) ? $extensions['module'] : array(); } $module_filenames = $this->getModuleFileNames(); $this->classLoaderAddMultiplePsr4($this->getModuleNamespacesPsr4($module_filenames)); // Load each module's serviceProvider class. foreach ($module_filenames as $module => $filename) { $camelized = ContainerBuilder::camelize($module); $name = "{$camelized}ServiceProvider"; $class = "Drupal\\{$module}\\{$name}"; if (class_exists($class)) { $this->serviceProviderClasses['app'][$module] = $class; } $filename = dirname($filename) . "/$module.services.yml"; if (file_exists($filename)) { $this->serviceYamls['app'][$module] = $filename; } } // Add site-specific service providers. if (!empty($GLOBALS['conf']['container_service_providers'])) { foreach ($GLOBALS['conf']['container_service_providers'] as $class) { if ((is_string($class) && class_exists($class)) || (is_object($class) && ($class instanceof ServiceProviderInterface || $class instanceof ServiceModifierInterface))) { $this->serviceProviderClasses['site'][] = $class; } } } $this->addServiceFiles(Settings::get('container_yamls', [])); }
Please login to continue.