google_tag-8.x-1.x-dev/src/GoogleTagServiceProvider.php
src/GoogleTagServiceProvider.php
<?php
declare(strict_types=1);
namespace Drupal\google_tag;
use Drupal\Core\DependencyInjection\ContainerBuilder;
use Drupal\Core\DependencyInjection\ServiceProviderBase;
/**
* Service provider for google_tag.
*/
final class GoogleTagServiceProvider extends ServiceProviderBase {
/**
* {@inheritdoc}
*/
public function alter(ContainerBuilder $container) {
// We cannot use the module handler as the container is not yet compiled.
// @see \Drupal\Core\DrupalKernel::compileContainer()
$modules = $container->getParameter('container.modules');
$subscribers_by_dependency = [
'csp' => 'google_tag.csp_subscriber',
'commerce_cart' => 'google_tag.commerce_cart_subscriber',
'commerce_order' => 'google_tag.commerce_order_subscriber',
'commerce_product' => 'google_tag.commerce_product_subscriber',
'commerce_wishlist' => 'google_tag.commerce_wishlist_subscriber',
'search_api' => 'google_tag.search_api_subscriber',
];
foreach ($subscribers_by_dependency as $dependency => $service) {
if (!isset($modules[$dependency])) {
$container->removeDefinition($service);
}
}
}
}
