mirror of
https://github.com/rectorphp/rector.git
synced 2024-06-07 11:50:51 +00:00
41 lines
1.4 KiB
PHP
41 lines
1.4 KiB
PHP
<?php declare(strict_types=1);
|
|
|
|
namespace Rector\DependencyInjection\CompilerPass;
|
|
|
|
use Rector\Contract\Dispatcher\ReconstructorInterface;
|
|
use Rector\Dispatcher\NodeDispatcher;
|
|
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->collectReconstructorsToNodeDispatcher($containerBuilder);
|
|
}
|
|
|
|
private function collectCommandsToConsoleApplication(ContainerBuilder $containerBuilder): void
|
|
{
|
|
DefinitionCollector::loadCollectorWithType(
|
|
$containerBuilder,
|
|
Application::class,
|
|
Command::class,
|
|
'add'
|
|
);
|
|
}
|
|
|
|
private function collectReconstructorsToNodeDispatcher(ContainerBuilder $containerBuilder): void
|
|
{
|
|
DefinitionCollector::loadCollectorWithType(
|
|
$containerBuilder,
|
|
NodeDispatcher::class,
|
|
ReconstructorInterface::class,
|
|
'addReconstructor'
|
|
);
|
|
}
|
|
}
|