You are here

public function WebprofilerServiceProvider::register in Devel 8

Same name and namespace in other branches
  1. 8.3 webprofiler/src/WebprofilerServiceProvider.php \Drupal\webprofiler\WebprofilerServiceProvider::register()
  2. 8.2 webprofiler/src/WebprofilerServiceProvider.php \Drupal\webprofiler\WebprofilerServiceProvider::register()
  3. 4.x webprofiler/src/WebprofilerServiceProvider.php \Drupal\webprofiler\WebprofilerServiceProvider::register()

Registers services to the container.

Parameters

ContainerBuilder $container: The ContainerBuilder to register services to.

Overrides ServiceProviderBase::register

File

webprofiler/src/WebprofilerServiceProvider.php, line 23

Class

WebprofilerServiceProvider
Defines a service profiler for the webprofiler module.

Namespace

Drupal\webprofiler

Code

public function register(ContainerBuilder $container) {

  // Add a compiler pass to discover all data collector services.
  $container
    ->addCompilerPass(new ProfilerPass());

  // Add a compiler pass to discover all available storage backend.
  $container
    ->addCompilerPass(new StoragePass());
  $container
    ->addCompilerPass(new ServicePass(), PassConfig::TYPE_AFTER_REMOVING);
  $container
    ->addCompilerPass(new DecoratorPass(), PassConfig::TYPE_AFTER_REMOVING);
  $modules = $container
    ->getParameter('container.modules');

  // Add ViewsDataCollector only if Views module is enabled.
  if (isset($modules['views'])) {
    $container
      ->register('webprofiler.views', 'Drupal\\webprofiler\\DataCollector\\ViewsDataCollector')
      ->addArgument(new Reference('views.executable'))
      ->addArgument(new Reference('entity.manager'))
      ->addTag('data_collector', [
      'template' => '@webprofiler/Collector/views.html.twig',
      'id' => 'views',
      'title' => 'Views',
      'priority' => 75,
    ]);
  }

  // Add BlockDataCollector only if Block module is enabled.
  if (isset($modules['block'])) {
    $container
      ->register('webprofiler.blocks', 'Drupal\\webprofiler\\DataCollector\\BlocksDataCollector')
      ->addArgument(new Reference('entity_type.manager'))
      ->addTag('data_collector', [
      'template' => '@webprofiler/Collector/blocks.html.twig',
      'id' => 'blocks',
      'title' => 'Blocks',
      'priority' => 78,
    ]);
  }

  // Add TranslationsDataCollector only if Locale module is enabled.
  if (isset($modules['locale'])) {
    $container
      ->register('webprofiler.translations', 'Drupal\\webprofiler\\DataCollector\\TranslationsDataCollector')
      ->addArgument(new Reference('string_translation'))
      ->addArgument(new Reference('url_generator'))
      ->addTag('data_collector', [
      'template' => '@webprofiler/Collector/translations.html.twig',
      'id' => 'translations',
      'title' => 'Translations',
      'priority' => 210,
    ]);
  }
}