811485a407bb83c2b362e6e975935e1f9fda387c
[yaffs-website] / web / modules / contrib / metatag / src / MetatagServiceProvider.php
1 <?php
2
3 namespace Drupal\metatag;
4
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;
11
12 /**
13  * Service Provider for Metatag.
14  */
15 class MetatagServiceProvider extends ServiceProviderBase {
16
17   /**
18    * {@inheritdoc}
19    */
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);
29
30       $metatag_hal = new Definition(MetatagHalNormalizer::class);
31       $metatag_hal->addTag('normalizer', ['priority' => 31]);
32       $container->setDefinition('metatag.normalizer.metatag.hal', $metatag_hal);
33
34       $metatag_field = new Definition(FieldItemNormalizer::class);
35       $metatag_field->addTag('normalizer', ['priority' => 30]);
36       $container->setDefinition('metatag.normalizer.metatag_field', $metatag_field);
37     }
38   }
39
40 }