You are here

public function CommerceShippingServiceProvider::register in Commerce Shipping 8.2

Registers services to the container.

Parameters

ContainerBuilder $container: The ContainerBuilder to register services to.

Overrides ServiceProviderBase::register

File

src/CommerceShippingServiceProvider.php, line 21

Class

CommerceShippingServiceProvider
Registers event subscribers for non-required modules.

Namespace

Drupal\commerce_shipping

Code

public function register(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');
  if (isset($modules['commerce_promotion'])) {
    $container
      ->register('commerce_shipping.promotion_subscriber', PromotionSubscriber::class)
      ->addArgument(new Reference('entity_type.manager'))
      ->addArgument(new Reference('plugin.manager.commerce_promotion_offer'))
      ->addTag('event_subscriber');
  }
  if (isset($modules['commerce_cart'])) {
    $container
      ->register('commerce_shipping.cart_subscriber', CartSubscriber::class)
      ->addArgument(new Reference('commerce_shipping.order_manager'))
      ->addTag('event_subscriber');
  }
  if (isset($modules['commerce_tax'])) {
    $container
      ->register('commerce_shipping.tax_subscriber', TaxSubscriber::class)
      ->addArgument(new Reference('commerce_shipping.order_manager'))
      ->addTag('event_subscriber');
  }
  if (isset($modules['serialization'])) {
    $container
      ->register('commerce_shipping.normalizer.shipment_item', ShipmentItemNormalizer::class)
      ->addTag('normalizer', [
      'priority' => 5,
    ]);
  }
}