Skip to content

Commit

Permalink
update markdown files
Browse files Browse the repository at this point in the history
  • Loading branch information
TomasVotruba committed Apr 12, 2022
1 parent ba048b8 commit 5928a8d
Show file tree
Hide file tree
Showing 12 changed files with 96 additions and 198 deletions.
23 changes: 11 additions & 12 deletions build/target-repository/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,19 +76,19 @@ vendor/bin/rector init
And modify it:

```php
// rector.php
use Rector\Php74\Rector\Property\TypedPropertyRector;
use Rector\Set\ValueObject\SetList;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Rector\Config\RectorConfig;

return static function (\Rector\Config\RectorConfig $containerConfigurator): void {
return static function (RectorConfig $rectorConfig): void {
// here we can define, what sets of rules will be applied
// tip: use "SetList" class to autocomplete sets
$containerConfigurator->import(SetList::CODE_QUALITY);
$rectorConfig->sets([
SetList::CODE_QUALITY
]);

// register single rule
$services = $containerConfigurator->services();
$services->set(TypedPropertyRector::class);
$rectorConfig->rule(TypedPropertyRector::class);
};
```

Expand Down Expand Up @@ -116,19 +116,18 @@ vendor/bin/rector process src
// rector.php
use Rector\Core\Configuration\Option;
use Rector\Core\ValueObject\PhpVersion;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;

return static function (\Rector\Config\RectorConfig $containerConfigurator): void {
$parameters = $containerConfigurator->parameters();
use Rector\Config\RectorConfig;

return static function (RectorConfig $rectorConfig): void {
// paths to refactor; solid alternative to CLI arguments
$parameters->set(Option::PATHS, [__DIR__ . '/src', __DIR__ . '/tests']);
$rectorConfig->paths([__DIR__ . '/src', __DIR__ . '/tests']);

// is your PHP version different from the one you refactor to? [default: your PHP version], uses PHP_VERSION_ID format
$parameters = $rectorConfig->parameters();
$parameters->set(Option::PHP_VERSION_FEATURES, PhpVersion::PHP_72);

// Path to PHPStan with extensions, that PHPStan in Rector uses to determine types
$parameters->set(Option::PHPSTAN_FOR_RECTOR_PATH, getcwd() . '/phpstan-for-config.neon');
$rectorConfig->phpstanConfig(__DIR__ . '/phpstan-for-config.neon');
};
```

Expand Down
2 changes: 1 addition & 1 deletion build/target-repository/docs/auto_import_names.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ To remove imports, use [ECS](https://github.com/symplify/easy-coding-standard) w
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use PhpCsFixer\Fixer\Import\NoUnusedImportsFixer;

return static function (\Rector\Config\RectorConfig $containerConfigurator): void {
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(NoUnusedImportsFixer::class);
};
Expand Down
56 changes: 22 additions & 34 deletions build/target-repository/docs/beyond_php_file_processors.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,60 +17,48 @@ Let´s say you want to define a custom configuration where you want to update th
All you have to do is using the ChangePackageVersionComposerRector:

```php
// rector.php

use Rector\Composer\Rector\ChangePackageVersionComposerRector;
use Rector\Composer\ValueObject\PackageAndVersion;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;

return static function (\Rector\Config\RectorConfig $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(ChangePackageVersionComposerRector::class)
->configure([
new PackageAndVersion('symfony/yaml', '^5.0'),
]);
use Rector\Config\RectorConfig;

return static function (RectorConfig $rectorConfig): void {
$rectorConfig->ruleWithConfiguration(ChangePackageVersionComposerRector::class, [
new PackageAndVersion('symfony/yaml', '^5.0'),
]);
};
```

There are some more rules related to manipulate your composer.json files. Let´s see them in action:

```php
// rector.php

use Rector\Composer\Rector\AddPackageToRequireComposerRector;
use Rector\Composer\Rector\AddPackageToRequireDevComposerRector;
use Rector\Composer\Rector\RemovePackageComposerRector;
use Rector\Composer\Rector\ReplacePackageAndVersionComposerRector;
use Rector\Composer\ValueObject\PackageAndVersion;
use Rector\Composer\ValueObject\ReplacePackageAndVersion;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;

return static function (\Rector\Config\RectorConfig $containerConfigurator): void {
$services = $containerConfigurator->services();
use Rector\Config\RectorConfig;

return static function (RectorConfig $rectorConfig): void {
// Add a package to the require section of your composer.json
$services->set(AddPackageToRequireComposerRector::class)
->configure([
new PackageAndVersion('symfony/yaml', '^5.0'),
]);
$rectorConfig->ruleWithConfiguration(AddPackageToRequireComposerRector::class, [
new PackageAndVersion('symfony/yaml', '^5.0'),
]);

// Add a package to the require dev section of your composer.json
$services->set(AddPackageToRequireDevComposerRector::class)
->configure([
new PackageAndVersion('phpunit/phpunit', '^9.0'),
]);
$rectorConfig->ruleWithConfiguration(AddPackageToRequireDevComposerRector::class, [
new PackageAndVersion('phpunit/phpunit', '^9.0'),
]);

// Remove a package from composer.json
$services->set(RemovePackageComposerRector::class)
->configure([
'symfony/console'
]);

// Replace a package in the composer.json
$services->set(ReplacePackageAndVersionComposerRector::class)
->configure([
new ReplacePackageAndVersion('vendor1/package2', 'vendor2/package1', '^3.0'),
]);
$rectorConfig->ruleWithConfiguration(RemovePackageComposerRector::class, [
'symfony/console'
]);

// Replace a package in the composer.json
$rectorConfig->ruleWithConfiguration(ReplacePackageAndVersionComposerRector::class, [
new ReplacePackageAndVersion('vendor1/package2', 'vendor2/package1', '^3.0'),
]);
};
```

Expand Down
12 changes: 3 additions & 9 deletions build/target-repository/docs/create_own_rule.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,17 +146,11 @@ composer dump-autoload
## 2. Register It

```php
<?php
// rector.php

declare(strict_types=1);

use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Utils\Rector\Rector\MyFirstRector;
use Rector\Config\RectorConfig;

return static function (\Rector\Config\RectorConfig $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(MyFirstRector::class);
return static function (RectorConfig $rectorConfig): void {
$rectorConfig->rule(MyFirstRector::class);
};
```

Expand Down
29 changes: 12 additions & 17 deletions build/target-repository/docs/how_it_works.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,23 +66,18 @@ E.g. in this case, first the `@expectedException` annotation will be changed to
then the `setExpectedException` method will be changed to `expectedException`.

```php
<?php
// rector.php

declare(strict_types=1);

use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;

return static function (\Rector\Config\RectorConfig $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(Rector\PHPUnit\Rector\ClassMethod\ExceptionAnnotationRector::class);
$services->set(Rector\Renaming\Rector\MethodCall\RenameMethodRector::class)
->arg('$oldToNewMethodsByClass', [
PHPUnit\Framework\TestClass::class => [
'setExpectedException' => 'expectedException',
'setExpectedExceptionRegExp' => 'expectedException',
],
]);
use Rector\PHPUnit\Rector\ClassMethod\ExceptionAnnotationRector;
use Rector\Renaming\Rector\MethodCall\RenameMethodRector;
use Rector\Config\RectorConfig
use Rector\Renaming\ValueObject\MethodCallRename;

return static function (RectorConfig $rectorConfig): void {
$rectorConfig->rule(ExceptionAnnotationRector::class);

$rectorConfig->ruleWithConfiguration(Rector\Renaming\Rector\MethodCall\RenameMethodRector::class, [
new MethodCallRename('PHPUnit\Framework\TestClass', 'setExpectedException', 'expectedException'),
new MethodCallRename('PHPUnit\Framework\TestClass', 'setExpectedExceptionRegExp', 'expectedException'),
]);
};
```

Expand Down
18 changes: 5 additions & 13 deletions build/target-repository/docs/how_to_configure_rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,12 @@ Rector rules that implement `Rector\Core\Contract\Rector\ConfigurableRectorInter
Typical example is `Rector\Renaming\Rector\Name\RenameClassRector`:

```php
<?php

// rector.php

declare(strict_types=1);

use Rector\Renaming\Rector\Name\RenameClassRector;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Rector\Config\RectorConfig;

return static function (\Rector\Config\RectorConfig $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(RenameClassRector::class)
->configure([
'App\SomeOldClass' => 'App\SomeNewClass',
]);
return static function (RectorConfig $rectorConfig): void {
$rectorConfig->ruleWithConfiguration(RenameClassRector::class, [
'App\SomeOldClass' => 'App\SomeNewClass',
]);
};
```
24 changes: 10 additions & 14 deletions build/target-repository/docs/how_to_create_custom_fileprocessor.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,14 +62,12 @@ final class BoldStatementFileProcessor implements FileProcessorInterface
Now register your FileProcessor in your configuration (actually in the container):

```php
<?php
// rector.php
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use MyVendor\MyPackage\FileProcessor\BoldStatementFileProcessor;
use Rector\Config\RectorConfig

return static function (\Rector\Config\RectorConfig $containerConfigurator): void {
return static function (RectorConfig $rectorConfig): void {
// [...]
$services = $containerConfigurator->services();
$services = $rectorConfig->services();
$services->set(BoldStatementFileProcessor::class);
};
```
Expand Down Expand Up @@ -107,8 +105,8 @@ use Rector\Core\ValueObject\Application\File;
final class BoldStatementMakeAmericaGreatAgainRector implements BoldStatementRectorInterface
{
/**
* @var string
*/
* @var string
*/
private const OLD_STATEMENT = 'Make america great again';

public function transform(string $content): string
Expand Down Expand Up @@ -185,18 +183,16 @@ Notice the annotation BoldStatementRectorInterface[]. This is important to injec
Yes, we said active. So last but not least we must register our new rule in the container, so it is applied:

```php
<?php
// rector.php

use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use MyVendor\MyPackage\FileProcessor\BoldStatementFileProcessor;
use MyVendor\MyPackage\FileProcessor\Rector\BoldStatementMakeAmericaGreatAgainRector;
use Rector\Config\RectorConfig;

return static function (\Rector\Config\RectorConfig $containerConfigurator): void {
return static function (RectorConfig $rectorConfig): void {
// [...]
$services = $containerConfigurator->services();
$services = $rectorConfig->services();
$services->set(BoldStatementFileProcessor::class);
$services->set(BoldStatementMakeAmericaGreatAgainRector::class);

$rectorConfig->rule(BoldStatementMakeAmericaGreatAgainRector::class);
};
```

Expand Down
15 changes: 3 additions & 12 deletions build/target-repository/docs/how_to_ignore_rule_or_paths.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,12 @@
## Preferred Way: Config

```php
<?php

// rector.php

declare(strict_types=1);

use Rector\CodeQuality\Rector\If_\SimplifyIfReturnBoolRector;
use Rector\Core\Configuration\Option;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;

return static function (\Rector\Config\RectorConfig $containerConfigurator): void {
$parameters = $containerConfigurator->parameters();
use Rector\Config\RectorConfig;

return static function (RectorConfig $rectorConfig): void {
// is there a file you need to skip?
$parameters->set(Option::SKIP, [
$rectorConfig->skip([
// single file
__DIR__ . '/src/ComplicatedFile.php',
// or directory
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,37 +20,27 @@ Now, you can register your custom `SetList`'s constant via import from `$contain


```php
<?php
// rector.php
declare(strict_types=1);

use Rector\Core\Configuration\Option;
use App\Set\ValueObject\SetList;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Rector\Config\RectorConfig;

return static function (\Rector\Config\RectorConfig $containerConfigurator): void {
$containerConfigurator->import(SetList::MY_FRAMEWORK_20);
return static function (RectorConfig $rectorConfig): void {
$rectorConfig->sets([SetList::MY_FRAMEWORK_20]);

$parameters = $containerConfigurator->parameters();
$parameters->set(Option::PATHS, [__DIR__ . '/src']);
$rectorConfig->paths([__DIR__ . '/src']);
};
```

Note that if you are looking for the downgrade categories, there is already the `DowngradeSetList`:

```php
<?php
// rector.php
declare(strict_types=1);

use Rector\Core\Configuration\Option;
use Rector\Set\ValueObject\DowngradeSetList;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Rector\Config\RectorConfig;

return static function (\Rector\Config\RectorConfig $containerConfigurator): void {
$containerConfigurator->import(DowngradeSetList::PHP_70)
return static function (RectorConfig $rectorConfig): void {
$rectorConfig->sets([DowngradeSetList::PHP_70])

$parameters = $containerConfigurator->parameters();
$parameters->set(Option::PATHS, [__DIR__ . '/src']);
$rectorConfig->paths([__DIR__ . '/src']);
};
```

This file was deleted.

Loading

0 comments on commit 5928a8d

Please sign in to comment.