MetatagServiceProvider.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. namespace Drupal\metatag;
  3. use Drupal\Core\DependencyInjection\ContainerBuilder;
  4. use Drupal\Core\DependencyInjection\ServiceProviderBase;
  5. use Drupal\metatag\Normalizer\MetatagHalNormalizer;
  6. use Drupal\metatag\Normalizer\MetatagNormalizer;
  7. use Symfony\Component\DependencyInjection\Definition;
  8. /**
  9. * Service Provider for Metatag.
  10. */
  11. class MetatagServiceProvider extends ServiceProviderBase {
  12. /**
  13. * {@inheritdoc}
  14. */
  15. public function alter(ContainerBuilder $container) {
  16. $modules = $container->getParameter('container.modules');
  17. if (isset($modules['serialization'])) {
  18. // Serialization module is enabled, add our metatag normalizers.
  19. // Priority of the metatag normalizer must be higher than other
  20. // general-purpose typed data and field item normalizers.
  21. $metatag = new Definition(MetatagNormalizer::class);
  22. $metatag->addTag('normalizer', ['priority' => 30]);
  23. $container->setDefinition('metatag.normalizer.metatag', $metatag);
  24. $metatag_hal = new Definition(MetatagHalNormalizer::class);
  25. $metatag_hal->addTag('normalizer', ['priority' => 31]);
  26. $container->setDefinition('metatag.normalizer.metatag.hal', $metatag_hal);
  27. }
  28. }
  29. }