/
githubmirror
/
symfony
Обзор
Документация
Войти
/
githubmirror
/
symfony
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
8.2
src/Symfony/Component/Routing/DependencyInjection/RoutingControllerPass.php
40 строк
1 KB
Christian Flothmann
make RoutingControllerPass and AttributeServicesLoader final
25 авг 2025, 09:55
25 авг 2025, 09:55
9986139
Код
Авторство
О чём код?
<?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\Routing\DependencyInjection; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\Compiler\PriorityTaggedServiceTrait; use Symfony\Component\DependencyInjection\ContainerBuilder; /** * @author Nicolas Grekas <p@tchwork.com> */ final class RoutingControllerPass implements CompilerPassInterface { use PriorityTaggedServiceTrait; public function process(ContainerBuilder $container): void { if (!$container->hasDefinition('routing.loader.attribute.services')) { return; } $resolve = $container->getParameterBag()->resolveValue(...); $taggedClasses = []; foreach ($this->findAndSortTaggedServices('routing.controller', $container) as $id) { $taggedClasses[$resolve($container->getDefinition($id)->getClass())] = true; } $container->getDefinition('routing.loader.attribute.services') ->replaceArgument(0, array_keys($taggedClasses)); } }