blob: 6d78342bc3136058894447d93f43f19328249639 [file] [log] [blame]
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +02001<?php
2
3/*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Symfony\Component\Translation\DependencyInjection;
13
14use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
15use Symfony\Component\DependencyInjection\ContainerBuilder;
16use Symfony\Component\DependencyInjection\Reference;
17
18/**
19 * Adds tagged translation.formatter services to translation writer.
20 */
21class TranslationDumperPass implements CompilerPassInterface
22{
23 private $writerServiceId;
24 private $dumperTag;
25
26 public function __construct(string $writerServiceId = 'translation.writer', string $dumperTag = 'translation.dumper')
27 {
28 if (1 < \func_num_args()) {
29 trigger_deprecation('symfony/translation', '5.3', 'Configuring "%s" is deprecated.', __CLASS__);
30 }
31
32 $this->writerServiceId = $writerServiceId;
33 $this->dumperTag = $dumperTag;
34 }
35
36 public function process(ContainerBuilder $container)
37 {
38 if (!$container->hasDefinition($this->writerServiceId)) {
39 return;
40 }
41
42 $definition = $container->getDefinition($this->writerServiceId);
43
44 foreach ($container->findTaggedServiceIds($this->dumperTag, true) as $id => $attributes) {
45 $definition->addMethodCall('addDumper', [$attributes[0]['alias'], new Reference($id)]);
46 }
47 }
48}