You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<?php
/* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */
namespace Symfony\Component\HttpKernel\DependencyInjection;
use Symfony\Component\DependencyInjection\Argument\IteratorArgument; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Reference;
/** * Register all services that have the "kernel.locale_aware" tag into the listener. * * @author Pierre Bobiet <pierrebobiet@gmail.com> */ class RegisterLocaleAwareServicesPass implements CompilerPassInterface { private $listenerServiceId; private $localeAwareTag;
public function __construct(string $listenerServiceId = 'locale_aware_listener', string $localeAwareTag = 'kernel.locale_aware') { if (0 < \func_num_args()) { trigger_deprecation('symfony/http-kernel', '5.3', 'Configuring "%s" is deprecated.', __CLASS__); }
$this->listenerServiceId = $listenerServiceId; $this->localeAwareTag = $localeAwareTag; }
public function process(ContainerBuilder $container) { if (!$container->hasDefinition($this->listenerServiceId)) { return; }
$services = [];
foreach ($container->findTaggedServiceIds($this->localeAwareTag) as $id => $tags) { $services[] = new Reference($id); }
if (!$services) { $container->removeDefinition($this->listenerServiceId);
return; }
$container ->getDefinition($this->listenerServiceId) ->setArgument(0, new IteratorArgument($services)) ; } }
|