rector/src/DependencyInjection/CompilerPass/CollectorCompilerPass.php
TomasVotruba ebe7698bae cleanup
2017-07-19 00:15:26 +02:00

41 lines
1.3 KiB
PHP

<?php declare(strict_types=1);
namespace Rector\DependencyInjection\CompilerPass;
use PhpParser\NodeTraverser;
use PhpParser\NodeVisitor;
use Symfony\Component\Console\Application;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symplify\PackageBuilder\Adapter\Symfony\DependencyInjection\DefinitionCollector;
final class CollectorCompilerPass implements CompilerPassInterface
{
public function process(ContainerBuilder $containerBuilder): void
{
$this->collectCommandsToConsoleApplication($containerBuilder);
$this->collectNodeVisitorsToTraverser($containerBuilder);
}
private function collectCommandsToConsoleApplication(ContainerBuilder $containerBuilder): void
{
DefinitionCollector::loadCollectorWithType(
$containerBuilder,
Application::class,
Command::class,
'add'
);
}
private function collectNodeVisitorsToTraverser(ContainerBuilder $containerBuilder): void
{
DefinitionCollector::loadCollectorWithType(
$containerBuilder,
NodeTraverser::class,
NodeVisitor::class,
'addVisitor'
);
}
}