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