From fbcb7714f1a803b0bae31978496801f2d208a580 Mon Sep 17 00:00:00 2001 From: TomasVotruba Date: Tue, 26 Sep 2017 12:06:43 +0200 Subject: [PATCH] DI: register rectors prefferable from config --- .../Extension/RectorsExtension.php | 18 +++++++++++------- src/config/services.yml | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/DependencyInjection/Extension/RectorsExtension.php b/src/DependencyInjection/Extension/RectorsExtension.php index 4e20b7da9ce..57ce97c1d76 100644 --- a/src/DependencyInjection/Extension/RectorsExtension.php +++ b/src/DependencyInjection/Extension/RectorsExtension.php @@ -4,6 +4,7 @@ namespace Rector\DependencyInjection\Extension; use Rector\Validator\RectorClassValidator; use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Extension\Extension; final class RectorsExtension extends Extension @@ -27,15 +28,18 @@ final class RectorsExtension extends Extension return; } - $rectors = $configs[0]; + $rectorClasses = $configs[0]; - $this->rectorClassValidator->validate($rectors); + $this->rectorClassValidator->validate($rectorClasses); - foreach ($rectors as $rector) { - $this->registerRectorIfNotYet($rector); // for custom rectors -// // add to active configuration -// dump($rector); -// die; + foreach ($rectorClasses as $rectorClass) { + $this->registerRector($containerBuilder, $rectorClass); // for custom rectors } } + + private function registerRector(ContainerBuilder $containerBuilder, string $rectorClass): void + { + $rectorDefinition = new Definition($rectorClass); + $containerBuilder->setDefinition($rectorClass, $rectorDefinition); + } } diff --git a/src/config/services.yml b/src/config/services.yml index cf41a7d94fc..0d1727af724 100644 --- a/src/config/services.yml +++ b/src/config/services.yml @@ -17,7 +17,7 @@ services: # PSR-4 autodiscovery Rector\: resource: '../../src' - exclude: '../../src/{Node/Attribute.php}' + exclude: '../../src/{Node/Attribute.php,Rector}' # autowire by interface Rector\Contract\Parser\ParserInterface: