Skip to content

Commit

Permalink
Merge pull request #68 from samsonasik/update-to-new-rector-config
Browse files Browse the repository at this point in the history
Update to new RectorConfig usage
  • Loading branch information
samsonasik authored Apr 28, 2022
2 parents 19f37c0 + e7a6b31 commit 62f331c
Show file tree
Hide file tree
Showing 8 changed files with 49 additions and 80 deletions.
9 changes: 3 additions & 6 deletions config/rector/set/config.php
Original file line number Diff line number Diff line change
Expand Up @@ -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',

Expand Down
11 changes: 4 additions & 7 deletions config/rector/set/laminas-servicemanager-40-auto-import.php
Original file line number Diff line number Diff line change
Expand Up @@ -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();
};
6 changes: 3 additions & 3 deletions config/rector/set/laminas-servicemanager-40.php
Original file line number Diff line number Diff line change
Expand Up @@ -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']);
};
22 changes: 8 additions & 14 deletions docs/book/v1/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -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']);
};
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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:

<!-- markdownlint-disable MD033 -->
<pre class="language-php" data-line="11-15"><code>
use Rector\Core\Configuration\Option;
<pre class="language-php" data-line="8-11"><code>
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
);
};
Expand All @@ -63,20 +59,16 @@ return static function (ContainerConfigurator $containerConfigurator): void {
If we want to auto import, we can use `LAMINAS_SERVICEMANGER_40_AUTO_IMPORT`:

<!-- markdownlint-disable MD033 -->
<pre class="language-php" data-line="6"><code>
use Rector\Core\Configuration\Option;
<pre class="language-php" data-line="5"><code>
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
);
};
Expand Down Expand Up @@ -104,22 +96,18 @@ To add return type by new instance creation, the standard Rector rule [`ReturnTy
Register the rule in `rector.php`:

<!-- markdownlint-disable MD033 -->
<pre class="language-php" data-line="15"><code>
<pre class="language-php" data-line="11"><code>
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);
};
</code></pre>
<!-- markdownlint-restore -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
};
Original file line number Diff line number Diff line change
Expand Up @@ -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();
};
Original file line number Diff line number Diff line change
Expand Up @@ -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);
};

0 comments on commit 62f331c

Please sign in to comment.