/
githubmirror
/
symfony
Обзор
Документация
Войти
/
githubmirror
/
symfony
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
8.2
src/Symfony/Component/Cache/DependencyInjection/CachePoolPrunerPass.php
41 строка
1 KB
Nicolas Grekas
Merge branch '6.4' into 7.3
23 дек 2025, 17:45
23 дек 2025, 17:45
11bcaa5
Код
Авторство
О чём код?
<?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\Cache\DependencyInjection; use Symfony\Component\Cache\PruneableInterface; use Symfony\Component\DependencyInjection\Argument\IteratorArgument; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Reference; /** * @author Rob Frawley 2nd <rmf@src.run> */ class CachePoolPrunerPass implements CompilerPassInterface { public function process(ContainerBuilder $container): void { if (!$container->hasDefinition('console.command.cache_pool_prune')) { return; } $services = []; foreach ($container->findTaggedServiceIds('cache.pool') as $id => $tags) { if ($tags[0]['pruneable'] ?? $container->getReflectionClass($container->getDefinition($id)->getClass(), false)?->implementsInterface(PruneableInterface::class) ?? false) { $services[$tags[0]['name'] ?? $id] = new Reference($id); } } $container->getDefinition('console.command.cache_pool_prune')->replaceArgument(0, new IteratorArgument($services)); } }