From e7a6b31e4ecee7bf691f1bec085b82fbf0a3fbee Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Thu, 28 Apr 2022 09:53:42 +0700 Subject: [PATCH] Update to new RectorConfig usage Signed-off-by: Abdul Malik Ikhsan --- config/rector/set/config.php | 9 ++-- .../laminas-servicemanager-40-auto-import.php | 11 ++-- .../rector/set/laminas-servicemanager-40.php | 6 +-- docs/book/v1/intro.md | 22 +++----- ...-factory-interface-to-use-psr-container.md | 52 +++++++------------ .../config/configured_rule.php | 7 ++- ...configured_rule_auto_import_rename_use.php | 12 ++--- ...rule_combine_with_set_list_auto_import.php | 10 ++-- 8 files changed, 49 insertions(+), 80 deletions(-) diff --git a/config/rector/set/config.php b/config/rector/set/config.php index a890ef7..9d7c411 100644 --- a/config/rector/set/config.php +++ b/config/rector/set/config.php @@ -3,13 +3,10 @@ declare(strict_types=1); use Rector\Renaming\Rector\Name\RenameClassRector; -use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; +use Rector\Config\RectorConfig; -return static function (ContainerConfigurator $containerConfigurator): void { - $services = $containerConfigurator->services(); - - $services->set(RenameClassRector::class) - ->configure([ +return static function (RectorConfig $rectorConfig): void { + $rectorConfig->ruleWithConfiguration(RenameClassRector::class, [ // interop deprecated interop to psr 'Interop\Container\ContainerInterface' => 'Psr\Container\ContainerInterface', diff --git a/config/rector/set/laminas-servicemanager-40-auto-import.php b/config/rector/set/laminas-servicemanager-40-auto-import.php index ad0d8dc..bedce64 100644 --- a/config/rector/set/laminas-servicemanager-40-auto-import.php +++ b/config/rector/set/laminas-servicemanager-40-auto-import.php @@ -2,12 +2,9 @@ declare(strict_types=1); -use Rector\Core\Configuration\Option; -use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; +use Rector\Config\RectorConfig; -return static function (ContainerConfigurator $containerConfigurator): void { - $containerConfigurator->import(__DIR__ . '/config.php'); - - $parameters = $containerConfigurator->parameters(); - $parameters->set(Option::AUTO_IMPORT_NAMES, true); +return static function (RectorConfig $rectorConfig): void { + $rectorConfig->sets([__DIR__ . '/config.php']); + $rectorConfig->importNames(); }; diff --git a/config/rector/set/laminas-servicemanager-40.php b/config/rector/set/laminas-servicemanager-40.php index e5c3275..0564be1 100644 --- a/config/rector/set/laminas-servicemanager-40.php +++ b/config/rector/set/laminas-servicemanager-40.php @@ -2,8 +2,8 @@ declare(strict_types=1); -use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; +use Rector\Config\RectorConfig; -return static function (ContainerConfigurator $containerConfigurator): void { - $containerConfigurator->import(__DIR__ . '/config.php'); +return static function (RectorConfig $rectorConfig): void { + $rectorConfig->sets([__DIR__ . '/config.php']); }; diff --git a/docs/book/v1/intro.md b/docs/book/v1/intro.md index 4717c86..b587ace 100644 --- a/docs/book/v1/intro.md +++ b/docs/book/v1/intro.md @@ -5,30 +5,24 @@ To use with rector, you can create the following `rector.php`: ```php -use Rector\Core\Configuration\Option; use Laminas\ServiceManager\Migration\Rector\Set\ValueObject\SetList; -use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; +use Rector\Config\RectorConfig; -return static function (ContainerConfigurator $containerConfigurator): void { - $containerConfigurator->import(SetList::LAMINAS_SERVICEMANGER_40); - - $parameters = $containerConfigurator->parameters(); - $parameters->set(Option::PATHS, [__DIR__ . '/module']); +return static function (RectorConfig $rectorConfig): void { + $rectorConfig->sets([SetList::LAMINAS_SERVICEMANGER_40]); + $rectorConfig->paths([__DIR__ . '/module']); }; ``` If you want to make renamed class type hint auto import enabled, you may use `SetList::LAMINAS_SERVICEMANGER_40_AUTO_IMPORT` set list, so the `rector.php` config will be as follow: ```php -use Rector\Core\Configuration\Option; use Laminas\ServiceManager\Migration\Rector\Set\ValueObject\SetList; -use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; - -return static function (ContainerConfigurator $containerConfigurator): void { - $containerConfigurator->import(SetList::LAMINAS_SERVICEMANGER_40_AUTO_IMPORT); +use Rector\Config\RectorConfig; - $parameters = $containerConfigurator->parameters(); - $parameters->set(Option::PATHS, [__DIR__ . '/module']); +return static function (RectorConfig $rectorConfig): void { + $rectorConfig->sets([SetList::LAMINAS_SERVICEMANGER_40_AUTO_IMPORT]); + $rectorConfig->paths([__DIR__ . '/module']); }; ``` diff --git a/docs/book/v1/migrate-implements-factory-interface-to-use-psr-container.md b/docs/book/v1/migrate-implements-factory-interface-to-use-psr-container.md index d9fdbf1..544be11 100644 --- a/docs/book/v1/migrate-implements-factory-interface-to-use-psr-container.md +++ b/docs/book/v1/migrate-implements-factory-interface-to-use-psr-container.md @@ -40,20 +40,16 @@ The steps to apply the changes are: To apply that, we can register rector rule: `Laminas\ServiceManager\Migration\Rector\Class_\ImplementsFactoryInterfaceToPsrFactoryRector` to our `rector.php` as an individual service: -

-use Rector\Core\Configuration\Option;
+

 use Laminas\ServiceManager\Migration\Rector\Set\ValueObject\SetList;
-use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
+use Rector\Config\RectorConfig;
 
-return static function (ContainerConfigurator $containerConfigurator): void {
-    $containerConfigurator->import(SetList::LAMINAS_SERVICEMANGER_40);
-
-    $parameters = $containerConfigurator->parameters();
-    $parameters->set(Option::PATHS, [__DIR__ . '/module']);
+return static function (RectorConfig $rectorConfig): void {
+    $rectorConfig->sets([SetList::LAMINAS_SERVICEMANGER_40]);
+    $rectorConfig->paths([__DIR__ . '/module']);
 
      // register ImplementsFactoryInterfaceToPsrFactoryRector service
-    $services = $containerConfigurator->services();
-    $services->set(
+    $rectorConfig->rule(
         \Laminas\ServiceManager\Migration\Rector\Class_\ImplementsFactoryInterfaceToPsrFactoryRector::class
     );
 };
@@ -63,20 +59,16 @@ return static function (ContainerConfigurator $containerConfigurator): void {
 If we want to auto import, we can use `LAMINAS_SERVICEMANGER_40_AUTO_IMPORT`:
 
 
-

-use Rector\Core\Configuration\Option;
+

 use Laminas\ServiceManager\Migration\Rector\Set\ValueObject\SetList;
-use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
-
-return static function (ContainerConfigurator $containerConfigurator): void {
-    $containerConfigurator->import(SetList::LAMINAS_SERVICEMANGER_40_AUTO_IMPORT);
+use Rector\Config\RectorConfig;
 
-    $parameters = $containerConfigurator->parameters();
-    $parameters->set(Option::PATHS, [__DIR__ . '/module']);
+return static function (RectorConfig $rectorConfig): void {
+    $rectorConfig->sets([SetList::LAMINAS_SERVICEMANGER_40_AUTO_IMPORT]);
+    $rectorConfig->paths([__DIR__ . '/module']);
 
-    // register ImplementsFactoryInterfaceToPsrFactoryRector service
-    $services = $containerConfigurator->services();
-    $services->set(
+     // register ImplementsFactoryInterfaceToPsrFactoryRector service
+    $rectorConfig->rule(
         \Laminas\ServiceManager\Migration\Rector\Class_\ImplementsFactoryInterfaceToPsrFactoryRector::class
     );
 };
@@ -104,22 +96,18 @@ To add return type by new instance creation, the standard Rector rule [`ReturnTy
 Register the rule in `rector.php`:
 
 
-

+

 use Laminas\ServiceManager\Migration\Rector\Class_\ImplementsFactoryInterfaceToPsrFactoryRector;
 use Laminas\ServiceManager\Migration\Rector\Set\ValueObject\SetList;
-use Rector\Core\Configuration\Option;
+use Rector\Config\RectorConfig;
 use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromReturnNewRector;
-use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
-
-return static function (ContainerConfigurator $containerConfigurator): void {
-    $containerConfigurator->import(SetList::LAMINAS_SERVICEMANGER_40_AUTO_IMPORT);
 
-    $parameters = $containerConfigurator->parameters();
-    $parameters->set(Option::PATHS, [__DIR__ . '/module']);
+return static function (RectorConfig $rectorConfig): void {
+    $rectorConfig->sets([SetList::LAMINAS_SERVICEMANGER_40_AUTO_IMPORT]);
+    $rectorConfig->paths([__DIR__ . '/module']);
 
-    $services = $containerConfigurator->services();
-    $services->set(ImplementsFactoryInterfaceToPsrFactoryRector::class);
-    $services->set(ReturnTypeFromReturnNewRector::class);
+    $rectorConfig->rule(ImplementsFactoryInterfaceToPsrFactoryRector::class);
+    $rectorConfig->rule(ReturnTypeFromReturnNewRector::class);
 };
 
diff --git a/test/Rector/Class_/ImplementsFactoryInterfaceToPsrFactoryRector/config/configured_rule.php b/test/Rector/Class_/ImplementsFactoryInterfaceToPsrFactoryRector/config/configured_rule.php index 8bc3289..33d63a3 100644 --- a/test/Rector/Class_/ImplementsFactoryInterfaceToPsrFactoryRector/config/configured_rule.php +++ b/test/Rector/Class_/ImplementsFactoryInterfaceToPsrFactoryRector/config/configured_rule.php @@ -2,10 +2,9 @@ declare(strict_types=1); +use Rector\Config\RectorConfig; use Laminas\ServiceManager\Migration\Rector\Class_\ImplementsFactoryInterfaceToPsrFactoryRector; -use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; -return static function (ContainerConfigurator $containerConfigurator): void { - $services = $containerConfigurator->services(); - $services->set(ImplementsFactoryInterfaceToPsrFactoryRector::class); +return static function (RectorConfig $rectorConfig): void { + $rectorConfig->rule(ImplementsFactoryInterfaceToPsrFactoryRector::class); }; diff --git a/test/Rector/Class_/ImplementsFactoryInterfaceToPsrFactoryRector/config/configured_rule_auto_import_rename_use.php b/test/Rector/Class_/ImplementsFactoryInterfaceToPsrFactoryRector/config/configured_rule_auto_import_rename_use.php index 8631bda..fe49d02 100644 --- a/test/Rector/Class_/ImplementsFactoryInterfaceToPsrFactoryRector/config/configured_rule_auto_import_rename_use.php +++ b/test/Rector/Class_/ImplementsFactoryInterfaceToPsrFactoryRector/config/configured_rule_auto_import_rename_use.php @@ -2,14 +2,10 @@ declare(strict_types=1); -use Rector\Core\Configuration\Option; +use Rector\Config\RectorConfig; use Laminas\ServiceManager\Migration\Rector\Class_\ImplementsFactoryInterfaceToPsrFactoryRector; -use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; -return static function (ContainerConfigurator $containerConfigurator): void { - $services = $containerConfigurator->services(); - $services->set(ImplementsFactoryInterfaceToPsrFactoryRector::class); - - $parameters = $containerConfigurator->parameters(); - $parameters->set(Option::AUTO_IMPORT_NAMES, true); +return static function (RectorConfig $rectorConfig): void { + $rectorConfig->rule(ImplementsFactoryInterfaceToPsrFactoryRector::class); + $rectorConfig->importNames(); }; diff --git a/test/Rector/Class_/ImplementsFactoryInterfaceToPsrFactoryRector/config/configured_rule_combine_with_set_list_auto_import.php b/test/Rector/Class_/ImplementsFactoryInterfaceToPsrFactoryRector/config/configured_rule_combine_with_set_list_auto_import.php index f33d940..ef1c2a5 100644 --- a/test/Rector/Class_/ImplementsFactoryInterfaceToPsrFactoryRector/config/configured_rule_combine_with_set_list_auto_import.php +++ b/test/Rector/Class_/ImplementsFactoryInterfaceToPsrFactoryRector/config/configured_rule_combine_with_set_list_auto_import.php @@ -3,13 +3,11 @@ // rector.php declare(strict_types=1); +use Rector\Config\RectorConfig; use Laminas\ServiceManager\Migration\Rector\Class_\ImplementsFactoryInterfaceToPsrFactoryRector; use Laminas\ServiceManager\Migration\Rector\Set\ValueObject\SetList; -use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; -return static function (ContainerConfigurator $containerConfigurator): void { - $containerConfigurator->import(SetList::LAMINAS_SERVICEMANGER_40_AUTO_IMPORT); - - $services = $containerConfigurator->services(); - $services->set(ImplementsFactoryInterfaceToPsrFactoryRector::class); +return static function (RectorConfig $rectorConfig): void { + $rectorConfig->sets([SetList::LAMINAS_SERVICEMANGER_40_AUTO_IMPORT]); + $rectorConfig->rule(ImplementsFactoryInterfaceToPsrFactoryRector::class); };