Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to new RectorConfig usage #68

Merged
merged 1 commit into from
Apr 28, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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);
};