[Arguments] New rule set from former generics (#5637)

* [Transform] Move SingleToManyMethodRector

* [Transform] Move WrapReturnRector here

* [DependencyInjectoin] Move AddMethodParentCallRecto here

* [Arguments] Create new package from old generics only around arguments

* composer docs uild
This commit is contained in:
Tomas Votruba 2021-02-21 00:21:19 +01:00 committed by GitHub
parent 947a75f6aa
commit 9a376d98e5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
93 changed files with 762 additions and 759 deletions

View File

@ -114,7 +114,7 @@
"Rector\\DowngradePhp80\\": "rules/downgrade-php80/src",
"Rector\\FamilyTree\\": "packages/family-tree/src",
"Rector\\FileSystemRector\\": "packages/file-system-rector/src",
"Rector\\Generic\\": "rules/generic/src",
"Rector\\Arguments\\": "rules/arguments/src",
"Rector\\Laravel\\": "rules/laravel/src",
"Rector\\Legacy\\": "rules/legacy/src",
"Rector\\MockeryToProphecy\\": "rules/mockery-to-prophecy/src",
@ -234,7 +234,7 @@
"Rector\\DowngradePhp73\\Tests\\": "rules/downgrade-php73/tests",
"Rector\\DowngradePhp74\\Tests\\": "rules/downgrade-php74/tests",
"Rector\\DowngradePhp80\\Tests\\": "rules/downgrade-php80/tests",
"Rector\\Generic\\Tests\\": "rules/generic/tests",
"Rector\\Arguments\\Tests\\": "rules/arguments/tests",
"Rector\\Laravel\\Tests\\": "rules/laravel/tests",
"Rector\\Legacy\\Tests\\": "rules/legacy/tests",
"Rector\\Defluent\\Tests\\": "rules/defluent/tests",

View File

@ -5,8 +5,8 @@ declare(strict_types=1);
use Rector\CakePHP\Rector\MethodCall\ModalToGetSetRector;
use Rector\CakePHP\ValueObject\ModalToGetSet;
use Rector\Core\ValueObject\Visibility;
use Rector\Generic\Rector\ClassMethod\NormalToFluentRector;
use Rector\Generic\ValueObject\NormalToFluent;
use Rector\Defluent\Rector\ClassMethod\NormalToFluentRector;
use Rector\Defluent\ValueObject\NormalToFluent;
use Rector\Renaming\Rector\MethodCall\RenameMethodRector;
use Rector\Renaming\Rector\Name\RenameClassRector;
use Rector\Renaming\Rector\PropertyFetch\RenamePropertyRector;

View File

@ -2,9 +2,9 @@
declare(strict_types=1);
use Rector\Arguments\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Arguments\ValueObject\ArgumentAdder;
use Rector\Core\ValueObject\Visibility;
use Rector\Generic\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Generic\ValueObject\ArgumentAdder;
use Rector\Laravel\Rector\Class_\AddMockConsoleOutputFalseToConsoleTestsRector;
use Rector\Laravel\Rector\ClassMethod\AddParentBootToModelClassMethodRector;
use Rector\Laravel\Rector\MethodCall\ChangeQueryWhereDateValueWithCarbonRector;

View File

@ -2,9 +2,9 @@
declare(strict_types=1);
use Rector\Arguments\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Arguments\ValueObject\ArgumentAdder;
use Rector\Core\ValueObject\Visibility;
use Rector\Generic\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Generic\ValueObject\ArgumentAdder;
use Rector\Renaming\Rector\MethodCall\RenameMethodRector;
use Rector\Renaming\Rector\Name\RenameClassRector;
use Rector\Renaming\Rector\StaticCall\RenameStaticMethodRector;

View File

@ -2,8 +2,8 @@
declare(strict_types=1);
use Rector\Generic\Rector\FuncCall\SwapFuncCallArgumentsRector;
use Rector\Generic\ValueObject\SwapFuncCallArguments;
use Rector\Arguments\Rector\FuncCall\SwapFuncCallArgumentsRector;
use Rector\Arguments\ValueObject\SwapFuncCallArguments;
use Rector\MysqlToMysqli\Rector\Assign\MysqlAssignToMysqliRector;
use Rector\MysqlToMysqli\Rector\FuncCall\MysqlFuncCallToMysqliRector;
use Rector\MysqlToMysqli\Rector\FuncCall\MysqlPConnectToMysqliConnectRector;

View File

@ -2,9 +2,9 @@
declare(strict_types=1);
use Rector\Arguments\Rector\ClassMethod\ArgumentDefaultValueReplacerRector;
use Rector\Arguments\ValueObject\ArgumentDefaultValueReplacer;
use Rector\DeadCode\Rector\StaticCall\RemoveParentCallWithoutParentRector;
use Rector\Generic\Rector\ClassMethod\ArgumentDefaultValueReplacerRector;
use Rector\Generic\ValueObject\ArgumentDefaultValueReplacer;
use Rector\Nette\Rector\Class_\MoveFinalGetUserToCheckRequirementsClassMethodRector;
use Rector\Nette\Rector\ClassMethod\RemoveParentAndNameFromComponentConstructorRector;
use Rector\Nette\Rector\MethodCall\AddNextrasDatePickerToDateControlRector;

View File

@ -2,9 +2,9 @@
declare(strict_types=1);
use Rector\Arguments\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Arguments\ValueObject\ArgumentAdder;
use Rector\DeadCode\Rector\StaticCall\RemoveParentCallWithoutParentRector;
use Rector\Generic\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Generic\ValueObject\ArgumentAdder;
use Rector\Php80\Rector\Catch_\RemoveUnusedVariableInCatchRector;
use Rector\Php80\Rector\Class_\AnnotationToAttributeRector;
use Rector\Php80\Rector\Class_\ClassPropertyAssignToConstructorPromotionRector;

View File

@ -2,8 +2,8 @@
declare(strict_types=1);
use Rector\Generic\Rector\ClassMethod\ArgumentDefaultValueReplacerRector;
use Rector\Generic\ValueObject\ArgumentDefaultValueReplacer;
use Rector\Arguments\Rector\ClassMethod\ArgumentDefaultValueReplacerRector;
use Rector\Arguments\ValueObject\ArgumentDefaultValueReplacer;
use Rector\Symfony2\Rector\StaticCall\ParseFileRector;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;

View File

@ -2,8 +2,8 @@
declare(strict_types=1);
use Rector\Generic\Rector\ClassMethod\ArgumentDefaultValueReplacerRector;
use Rector\Generic\ValueObject\ArgumentDefaultValueReplacer;
use Rector\Arguments\Rector\ClassMethod\ArgumentDefaultValueReplacerRector;
use Rector\Arguments\ValueObject\ArgumentDefaultValueReplacer;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;

View File

@ -2,8 +2,8 @@
declare(strict_types=1);
use Rector\Generic\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Generic\ValueObject\ArgumentAdder;
use Rector\Arguments\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Arguments\ValueObject\ArgumentAdder;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;

View File

@ -2,8 +2,8 @@
declare(strict_types=1);
use Rector\Generic\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Generic\ValueObject\ArgumentAdder;
use Rector\Arguments\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Arguments\ValueObject\ArgumentAdder;
use Rector\Renaming\Rector\MethodCall\RenameMethodRector;
use Rector\Renaming\Rector\Name\RenameClassRector;
use Rector\Renaming\ValueObject\MethodCallRename;

View File

@ -5,15 +5,13 @@ declare(strict_types=1);
use PHPStan\Type\IterableType;
use PHPStan\Type\MixedType;
use Rector\Arguments\NodeAnalyzer\ArgumentAddingScope;
use Rector\Arguments\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Arguments\Rector\ClassMethod\ArgumentDefaultValueReplacerRector;
use Rector\Arguments\ValueObject\ArgumentAdder;
use Rector\Arguments\ValueObject\ArgumentDefaultValueReplacer;
use Rector\Core\ValueObject\MethodName;
use Rector\Core\ValueObject\Visibility;
use Rector\Generic\NodeAnalyzer\ArgumentAddingScope;
use Rector\Generic\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Generic\Rector\ClassMethod\ArgumentDefaultValueReplacerRector;
use Rector\Generic\Rector\ClassMethod\WrapReturnRector;
use Rector\Generic\ValueObject\ArgumentAdder;
use Rector\Generic\ValueObject\ArgumentDefaultValueReplacer;
use Rector\Generic\ValueObject\WrapReturn;
use Rector\Removing\Rector\ClassMethod\ArgumentRemoverRector;
use Rector\Removing\ValueObject\ArgumentRemover;
use Rector\Renaming\Rector\MethodCall\RenameMethodRector;
@ -22,8 +20,10 @@ use Rector\Renaming\ValueObject\MethodCallRename;
use Rector\Symfony4\Rector\MethodCall\ContainerGetToConstructorInjectionRector;
use Rector\Symfony4\Rector\New_\RootNodeTreeBuilderRector;
use Rector\Symfony4\Rector\New_\StringToArrayArgumentProcessRector;
use Rector\Transform\Rector\ClassMethod\WrapReturnRector;
use Rector\Transform\Rector\New_\NewToStaticCallRector;
use Rector\Transform\ValueObject\NewToStaticCall;
use Rector\Transform\ValueObject\WrapReturn;
use Rector\TypeDeclaration\Rector\ClassMethod\AddReturnTypeDeclarationRector;
use Rector\TypeDeclaration\ValueObject\AddReturnTypeDeclaration;
use Rector\Visibility\Rector\ClassMethod\ChangeMethodVisibilityRector;

View File

@ -2,11 +2,11 @@
declare(strict_types=1);
use Rector\Core\ValueObject\MethodName;
use Rector\Generic\Rector\ClassMethod\AddMethodParentCallRector;
use Rector\Arguments\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Arguments\ValueObject\ArgumentAdder;
use Rector\Generic\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Generic\ValueObject\ArgumentAdder;
use Rector\Core\ValueObject\MethodName;
use Rector\DependencyInjection\Rector\ClassMethod\AddMethodParentCallRector;
use Rector\Renaming\Rector\MethodCall\RenameMethodRector;
use Rector\Renaming\Rector\Name\RenameClassRector;
use Rector\Renaming\ValueObject\MethodCallRename;

View File

@ -4,6 +4,8 @@
## Categories
- [Arguments](#arguments) (3)
- [Autodiscovery](#autodiscovery) (4)
- [CakePHP](#cakephp) (6)
@ -22,9 +24,9 @@
- [DeadDocBlock](#deaddocblock) (5)
- [Defluent](#defluent) (8)
- [Defluent](#defluent) (9)
- [DependencyInjection](#dependencyinjection) (4)
- [DependencyInjection](#dependencyinjection) (5)
- [Doctrine](#doctrine) (18)
@ -46,8 +48,6 @@
- [EarlyReturn](#earlyreturn) (10)
- [Generic](#generic) (7)
- [Generics](#generics) (1)
- [Laravel](#laravel) (11)
@ -136,7 +136,7 @@
- [SymfonyPhpConfig](#symfonyphpconfig) (1)
- [Transform](#transform) (32)
- [Transform](#transform) (34)
- [TypeDeclaration](#typedeclaration) (17)
@ -144,6 +144,153 @@
<br>
## Arguments
### ArgumentAdderRector
This Rector adds new default arguments in calls of defined methods and class types.
:wrench: **configure it!**
- class: `Rector\Arguments\Rector\ClassMethod\ArgumentAdderRector`
```php
use Rector\Arguments\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Arguments\ValueObject\ArgumentAdder;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(ArgumentAdderRector::class)
->call('configure', [[
ArgumentAdderRector::ADDED_ARGUMENTS => ValueObjectInliner::inline([
new ArgumentAdder('SomeExampleClass', 'someMethod', 0, 'someArgument', 'true', 'SomeType', null),
]),
]]);
};
```
```diff
$someObject = new SomeExampleClass;
-$someObject->someMethod();
+$someObject->someMethod(true);
```
<br>
```php
use Rector\Arguments\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Arguments\ValueObject\ArgumentAdder;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(ArgumentAdderRector::class)
->call('configure', [[
ArgumentAdderRector::ADDED_ARGUMENTS => ValueObjectInliner::inline([
new ArgumentAdder('SomeExampleClass', 'someMethod', 0, 'someArgument', 'true', 'SomeType', null),
]),
]]);
};
```
```diff
class MyCustomClass extends SomeExampleClass
{
- public function someMethod()
+ public function someMethod($value = true)
{
}
}
```
<br>
### ArgumentDefaultValueReplacerRector
Replaces defined map of arguments in defined methods and their calls.
:wrench: **configure it!**
- class: `Rector\Arguments\Rector\ClassMethod\ArgumentDefaultValueReplacerRector`
```php
use Rector\Arguments\Rector\ClassMethod\ArgumentDefaultValueReplacerRector;
use Rector\Arguments\ValueObject\ArgumentDefaultValueReplacer;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(ArgumentDefaultValueReplacerRector::class)
->call('configure', [[
ArgumentDefaultValueReplacerRector::REPLACED_ARGUMENTS => ValueObjectInliner::inline([
new ArgumentDefaultValueReplacer('SomeExampleClass', 'someMethod', 0, 'SomeClass::OLD_CONSTANT', 'false'),
]),
]]);
};
```
```diff
$someObject = new SomeClass;
-$someObject->someMethod(SomeClass::OLD_CONSTANT);
+$someObject->someMethod(false);'
```
<br>
### SwapFuncCallArgumentsRector
Swap arguments in function calls
:wrench: **configure it!**
- class: `Rector\Arguments\Rector\FuncCall\SwapFuncCallArgumentsRector`
```php
use Rector\Arguments\Rector\FuncCall\SwapFuncCallArgumentsRector;
use Rector\Arguments\ValueObject\SwapFuncCallArguments;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(SwapFuncCallArgumentsRector::class)
->call('configure', [[
SwapFuncCallArgumentsRector::FUNCTION_ARGUMENT_SWAPS => ValueObjectInliner::inline([
new SwapFuncCallArguments('some_function', [1, 0]), ]
),
]]);
};
```
```diff
final class SomeClass
{
public function run($one, $two)
{
- return some_function($one, $two);
+ return some_function($two, $one);
}
}
```
<br>
## Autodiscovery
### MoveEntitiesToEntityDirectoryRector
@ -4215,6 +4362,44 @@ Turns fluent interface calls to classic ones.
<br>
### NormalToFluentRector
Turns fluent interface calls to classic ones.
:wrench: **configure it!**
- class: `Rector\Defluent\Rector\ClassMethod\NormalToFluentRector`
```php
use Rector\Defluent\Rector\ClassMethod\NormalToFluentRector;
use Rector\Defluent\ValueObject\NormalToFluent;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(NormalToFluentRector::class)
->call('configure', [[
NormalToFluentRector::CALLS_TO_FLUENT => ValueObjectInliner::inline([
new NormalToFluent('SomeClass', ['someFunction', 'otherFunction']), ]
),
]]);
};
```
```diff
$someObject = new SomeClass();
-$someObject->someFunction();
-$someObject->otherFunction();
+$someObject->someFunction()
+ ->otherFunction();
```
<br>
### ReturnFluentChainMethodCallToNormalMethodCallRector
Turns fluent interface calls to classic ones.
@ -4303,6 +4488,46 @@ Turns action injection in Controllers to constructor injection
<br>
### AddMethodParentCallRector
Add method parent call, in case new parent method is added
:wrench: **configure it!**
- class: `Rector\DependencyInjection\Rector\ClassMethod\AddMethodParentCallRector`
```php
use Rector\DependencyInjection\Rector\ClassMethod\AddMethodParentCallRector;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(AddMethodParentCallRector::class)
->call('configure', [[
AddMethodParentCallRector::METHODS_BY_PARENT_TYPES => [
'ParentClassWithNewConstructor' => '__construct',
],
]]);
};
```
```diff
class SunshineCommand extends ParentClassWithNewConstructor
{
public function __construct()
{
$value = 5;
+
+ parent::__construct();
}
}
```
<br>
### AnnotatedPropertyInjectToConstructorInjectionRector
Turns properties with `@inject` to private properties and constructor injection
@ -6806,315 +7031,6 @@ Changes Single return of && && to early returns
<br>
## Generic
### AddMethodParentCallRector
Add method parent call, in case new parent method is added
:wrench: **configure it!**
- class: `Rector\Generic\Rector\ClassMethod\AddMethodParentCallRector`
```php
use Rector\Generic\Rector\ClassMethod\AddMethodParentCallRector;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(AddMethodParentCallRector::class)
->call('configure', [[
AddMethodParentCallRector::METHODS_BY_PARENT_TYPES => [
'ParentClassWithNewConstructor' => '__construct',
],
]]);
};
```
```diff
class SunshineCommand extends ParentClassWithNewConstructor
{
public function __construct()
{
$value = 5;
+
+ parent::__construct();
}
}
```
<br>
### ArgumentAdderRector
This Rector adds new default arguments in calls of defined methods and class types.
:wrench: **configure it!**
- class: `Rector\Generic\Rector\ClassMethod\ArgumentAdderRector`
```php
use Rector\Generic\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Generic\ValueObject\ArgumentAdder;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(ArgumentAdderRector::class)
->call('configure', [[
ArgumentAdderRector::ADDED_ARGUMENTS => ValueObjectInliner::inline([
new ArgumentAdder('SomeExampleClass', 'someMethod', 0, 'someArgument', 'true', 'SomeType', null),
]),
]]);
};
```
```diff
$someObject = new SomeExampleClass;
-$someObject->someMethod();
+$someObject->someMethod(true);
```
<br>
```php
use Rector\Generic\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Generic\ValueObject\ArgumentAdder;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(ArgumentAdderRector::class)
->call('configure', [[
ArgumentAdderRector::ADDED_ARGUMENTS => ValueObjectInliner::inline([
new ArgumentAdder('SomeExampleClass', 'someMethod', 0, 'someArgument', 'true', 'SomeType', null),
]),
]]);
};
```
```diff
class MyCustomClass extends SomeExampleClass
{
- public function someMethod()
+ public function someMethod($value = true)
{
}
}
```
<br>
### ArgumentDefaultValueReplacerRector
Replaces defined map of arguments in defined methods and their calls.
:wrench: **configure it!**
- class: `Rector\Generic\Rector\ClassMethod\ArgumentDefaultValueReplacerRector`
```php
use Rector\Generic\Rector\ClassMethod\ArgumentDefaultValueReplacerRector;
use Rector\Generic\ValueObject\ArgumentDefaultValueReplacer;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(ArgumentDefaultValueReplacerRector::class)
->call('configure', [[
ArgumentDefaultValueReplacerRector::REPLACED_ARGUMENTS => ValueObjectInliner::inline([
new ArgumentDefaultValueReplacer('SomeExampleClass', 'someMethod', 0, 'SomeClass::OLD_CONSTANT', 'false'),
]),
]]);
};
```
```diff
$someObject = new SomeClass;
-$someObject->someMethod(SomeClass::OLD_CONSTANT);
+$someObject->someMethod(false);'
```
<br>
### NormalToFluentRector
Turns fluent interface calls to classic ones.
:wrench: **configure it!**
- class: `Rector\Generic\Rector\ClassMethod\NormalToFluentRector`
```php
use Rector\Generic\Rector\ClassMethod\NormalToFluentRector;
use Rector\Generic\ValueObject\NormalToFluent;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(NormalToFluentRector::class)
->call('configure', [[
NormalToFluentRector::CALLS_TO_FLUENT => ValueObjectInliner::inline([
new NormalToFluent('SomeClass', ['someFunction', 'otherFunction']), ]
),
]]);
};
```
```diff
$someObject = new SomeClass();
-$someObject->someFunction();
-$someObject->otherFunction();
+$someObject->someFunction()
+ ->otherFunction();
```
<br>
### SingleToManyMethodRector
Change method that returns single value to multiple values
:wrench: **configure it!**
- class: `Rector\Generic\Rector\ClassMethod\SingleToManyMethodRector`
```php
use Rector\Generic\Rector\ClassMethod\SingleToManyMethodRector;
use Rector\Generic\ValueObject\SingleToManyMethod;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(SingleToManyMethodRector::class)
->call('configure', [[
SingleToManyMethodRector::SINGLES_TO_MANY_METHODS => ValueObjectInliner::inline([
new SingleToManyMethod('SomeClass', 'getNode', 'getNodes'),
]),
]]);
};
```
```diff
class SomeClass
{
- public function getNode(): string
+ /**
+ * @return string[]
+ */
+ public function getNodes(): array
{
- return 'Echo_';
+ return ['Echo_'];
}
}
```
<br>
### SwapFuncCallArgumentsRector
Swap arguments in function calls
:wrench: **configure it!**
- class: `Rector\Generic\Rector\FuncCall\SwapFuncCallArgumentsRector`
```php
use Rector\Generic\Rector\FuncCall\SwapFuncCallArgumentsRector;
use Rector\Generic\ValueObject\SwapFuncCallArguments;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(SwapFuncCallArgumentsRector::class)
->call('configure', [[
SwapFuncCallArgumentsRector::FUNCTION_ARGUMENT_SWAPS => ValueObjectInliner::inline([
new SwapFuncCallArguments('some_function', [1, 0]), ]
),
]]);
};
```
```diff
final class SomeClass
{
public function run($one, $two)
{
- return some_function($one, $two);
+ return some_function($two, $one);
}
}
```
<br>
### WrapReturnRector
Wrap return value of specific method
:wrench: **configure it!**
- class: `Rector\Generic\Rector\ClassMethod\WrapReturnRector`
```php
use Rector\Generic\Rector\ClassMethod\WrapReturnRector;
use Rector\Generic\ValueObject\WrapReturn;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(WrapReturnRector::class)
->call('configure', [[
WrapReturnRector::TYPE_METHOD_WRAPS => ValueObjectInliner::inline([new WrapReturn('SomeClass', 'getItem', true)]),
]]);
};
```
```diff
final class SomeClass
{
public function getItem()
{
- return 1;
+ return [1];
}
}
```
<br>
## Generics
### GenericsPHPStormMethodAnnotationRector
@ -16290,6 +16206,51 @@ return static function (ContainerConfigurator $containerConfigurator): void {
<br>
### SingleToManyMethodRector
Change method that returns single value to multiple values
:wrench: **configure it!**
- class: `Rector\Transform\Rector\ClassMethod\SingleToManyMethodRector`
```php
use Rector\Transform\Rector\ClassMethod\SingleToManyMethodRector;
use Rector\Transform\ValueObject\SingleToManyMethod;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(SingleToManyMethodRector::class)
->call('configure', [[
SingleToManyMethodRector::SINGLES_TO_MANY_METHODS => ValueObjectInliner::inline([
new SingleToManyMethod('SomeClass', 'getNode', 'getNodes'),
]),
]]);
};
```
```diff
class SomeClass
{
- public function getNode(): string
+ /**
+ * @return string[]
+ */
+ public function getNodes(): array
{
- return 'Echo_';
+ return ['Echo_'];
}
}
```
<br>
### StaticCallToFuncCallRector
Turns static call to function call.
@ -16620,6 +16581,45 @@ return static function (ContainerConfigurator $containerConfigurator): void {
<br>
### WrapReturnRector
Wrap return value of specific method
:wrench: **configure it!**
- class: `Rector\Transform\Rector\ClassMethod\WrapReturnRector`
```php
use Rector\Transform\Rector\ClassMethod\WrapReturnRector;
use Rector\Transform\ValueObject\WrapReturn;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(WrapReturnRector::class)
->call('configure', [[
WrapReturnRector::TYPE_METHOD_WRAPS => ValueObjectInliner::inline([new WrapReturn('SomeClass', 'getItem', true)]),
]]);
};
```
```diff
final class SomeClass
{
public function getItem()
{
- return 1;
+ return [1];
}
}
```
<br>
## TypeDeclaration
### AddArrayParamDocTypeRector

View File

@ -12,6 +12,6 @@ return static function (ContainerConfigurator $containerConfigurator): void {
->autowire()
->autoconfigure();
$services->load('Rector\Generic\\', __DIR__ . '/../src')
->exclude([__DIR__ . '/../src/Contract', __DIR__ . '/../src/Rector', __DIR__ . '/../src/ValueObject']);
$services->load('Rector\Arguments\\', __DIR__ . '/../src')
->exclude([__DIR__ . '/../src/Rector', __DIR__ . '/../src/ValueObject']);
};

View File

@ -2,14 +2,14 @@
declare(strict_types=1);
namespace Rector\Generic\NodeAnalyzer;
namespace Rector\Arguments\NodeAnalyzer;
use PhpParser\Node;
use PhpParser\Node\Expr\MethodCall;
use PhpParser\Node\Expr\StaticCall;
use PhpParser\Node\Name;
use PhpParser\Node\Stmt\ClassMethod;
use Rector\Generic\ValueObject\ArgumentAdder;
use Rector\Arguments\ValueObject\ArgumentAdder;
use Rector\NodeNameResolver\NodeNameResolver;
final class ArgumentAddingScope

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\Rector\ClassMethod;
namespace Rector\Arguments\Rector\ClassMethod;
use PhpParser\BuilderHelpers;
use PhpParser\Node;
@ -16,18 +16,18 @@ use PhpParser\Node\Name\FullyQualified;
use PhpParser\Node\Param;
use PhpParser\Node\Stmt\Class_;
use PhpParser\Node\Stmt\ClassMethod;
use Rector\Arguments\NodeAnalyzer\ArgumentAddingScope;
use Rector\Arguments\ValueObject\ArgumentAdder;
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
use Rector\Core\Exception\ShouldNotHappenException;
use Rector\Core\Rector\AbstractRector;
use Rector\Generic\NodeAnalyzer\ArgumentAddingScope;
use Rector\Generic\ValueObject\ArgumentAdder;
use Rector\NodeTypeResolver\Node\AttributeKey;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
use Webmozart\Assert\Assert;
/**
* @see \Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\ArgumentAdderRectorTest
* @see \Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\ArgumentAdderRectorTest
*/
final class ArgumentAdderRector extends AbstractRector implements ConfigurableRectorInterface
{

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\Rector\ClassMethod;
namespace Rector\Arguments\Rector\ClassMethod;
use Nette\Utils\Strings;
use PhpParser\BuilderHelpers;
@ -11,15 +11,15 @@ use PhpParser\Node\Arg;
use PhpParser\Node\Expr\MethodCall;
use PhpParser\Node\Expr\StaticCall;
use PhpParser\Node\Stmt\ClassMethod;
use Rector\Arguments\ValueObject\ArgumentDefaultValueReplacer;
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
use Rector\Core\Rector\AbstractRector;
use Rector\Generic\ValueObject\ArgumentDefaultValueReplacer;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
use Webmozart\Assert\Assert;
/**
* @see \Rector\Generic\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector\ArgumentDefaultValueReplacerRectorTest
* @see \Rector\Arguments\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector\ArgumentDefaultValueReplacerRectorTest
*/
final class ArgumentDefaultValueReplacerRector extends AbstractRector implements ConfigurableRectorInterface
{

View File

@ -2,19 +2,19 @@
declare(strict_types=1);
namespace Rector\Generic\Rector\FuncCall;
namespace Rector\Arguments\Rector\FuncCall;
use PhpParser\Node;
use PhpParser\Node\Expr\FuncCall;
use Rector\Arguments\ValueObject\SwapFuncCallArguments;
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
use Rector\Core\Rector\AbstractRector;
use Rector\Generic\ValueObject\SwapFuncCallArguments;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
use Webmozart\Assert\Assert;
/**
* @see \Rector\Generic\Tests\Rector\FuncCall\SwapFuncCallArgumentsRector\SwapFuncCallArgumentsRectorTest
* @see \Rector\Arguments\Tests\Rector\FuncCall\SwapFuncCallArgumentsRector\SwapFuncCallArgumentsRectorTest
*/
final class SwapFuncCallArgumentsRector extends AbstractRector implements ConfigurableRectorInterface
{

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\ValueObject;
namespace Rector\Arguments\ValueObject;
final class ArgumentAdder
{

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\ValueObject;
namespace Rector\Arguments\ValueObject;
final class ArgumentDefaultValueReplacer
{

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\ValueObject;
namespace Rector\Arguments\ValueObject;
final class SwapFuncCallArguments
{

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector;
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector;
use Iterator;
use Rector\Testing\PHPUnit\AbstractRectorTestCase;

View File

@ -0,0 +1,33 @@
<?php
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
use Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeContainerBuilder;
class SomeClass
{
public function create()
{
$containerBuilder = new SomeContainerBuilder();
$containerBuilder->compile();
}
}
?>
-----
<?php
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
use Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeContainerBuilder;
class SomeClass
{
public function create()
{
$containerBuilder = new SomeContainerBuilder();
$containerBuilder->compile(false);
}
}
?>

View File

@ -1,8 +1,8 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeContainerBuilder;
use Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeContainerBuilder;
class SomeClass2
{
@ -17,9 +17,9 @@ class SomeClass2
-----
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeContainerBuilder;
use Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeContainerBuilder;
class SomeClass2
{

View File

@ -0,0 +1,29 @@
<?php
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
use Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeContainerBuilder;
class CustomContainerBuilder extends SomeContainerBuilder
{
public function addCompilerPass($pass, $type)
{
}
}
?>
-----
<?php
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
use Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeContainerBuilder;
class CustomContainerBuilder extends SomeContainerBuilder
{
public function addCompilerPass($pass, $type, int $priority = 0)
{
}
}
?>

View File

@ -1,8 +1,8 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeParentClient;
use Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeParentClient;
class Scoped extends SomeParentClient
{
@ -22,9 +22,9 @@ class Scoped extends SomeParentClient
-----
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeParentClient;
use Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeParentClient;
class Scoped extends SomeParentClient
{

View File

@ -1,8 +1,8 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeContainerBuilder;
use Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeContainerBuilder;
class SkipAddWithDefaultNull
{

View File

@ -0,0 +1,12 @@
<?php
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
use Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeContainerBuilder;
class SkipAlreadyAdded extends SomeContainerBuilder
{
public function addCompilerPass($pass, $type, int $priority = 10)
{
}
}

View File

@ -1,6 +1,6 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
class SkipAnonymous
{

View File

@ -0,0 +1,10 @@
<?php
declare(strict_types=1);
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Source;
class SomeContainerBuilder
{
}

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Source;
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Source;
class SomeParentClient
{

View File

@ -1,10 +1,10 @@
<?php
use Rector\Generic\NodeAnalyzer\ArgumentAddingScope;
use Rector\Generic\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeContainerBuilder;
use Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeParentClient;
use Rector\Generic\ValueObject\ArgumentAdder;
use Rector\Arguments\NodeAnalyzer\ArgumentAddingScope;
use Rector\Arguments\Rector\ClassMethod\ArgumentAdderRector;
use Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeContainerBuilder;
use Rector\Arguments\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeParentClient;
use Rector\Arguments\ValueObject\ArgumentAdder;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector;
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector;
use Iterator;
use Rector\Testing\PHPUnit\AbstractRectorTestCase;

View File

@ -1,6 +1,6 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector\Fixture;
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector\Fixture;
use Symfony\Component\DependencyInjection\ContainerBuilder;
@ -15,7 +15,7 @@ function argumentDefalutValue()
-----
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector\Fixture;
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector\Fixture;
use Symfony\Component\DependencyInjection\ContainerBuilder;

View File

@ -1,6 +1,6 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector\Fixture;
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector\Fixture;
use Symfony\Component\Yaml\Yaml;
@ -16,7 +16,7 @@ function argumentDefaultValue2()
-----
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector\Fixture;
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector\Fixture;
use Symfony\Component\Yaml\Yaml;

View File

@ -1,6 +1,6 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector\Fixture;
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector\Fixture;
use Symfony\Component\Yaml\Yaml;
@ -15,7 +15,7 @@ function argumentDefaultValue3()
-----
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector\Fixture;
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector\Fixture;
use Symfony\Component\Yaml\Yaml;

View File

@ -1,6 +1,6 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector\FixtureSymfony28;
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector\FixtureSymfony28;
use Symfony\Component\Routing\Router;
@ -18,7 +18,7 @@ class UrlMatcherGenerate
-----
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector\FixtureSymfony28;
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector\FixtureSymfony28;
use Symfony\Component\Routing\Router;

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector;
namespace Rector\Arguments\Tests\Rector\ClassMethod\ArgumentDefaultValueReplacerRector;
use Iterator;
use Rector\Testing\PHPUnit\AbstractRectorTestCase;

View File

@ -1,7 +1,7 @@
<?php
use Rector\Generic\Rector\ClassMethod\ArgumentDefaultValueReplacerRector;
use Rector\Generic\ValueObject\ArgumentDefaultValueReplacer;
use Rector\Arguments\Rector\ClassMethod\ArgumentDefaultValueReplacerRector;
use Rector\Arguments\ValueObject\ArgumentDefaultValueReplacer;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;

View File

@ -1,6 +1,6 @@
<?php
namespace Rector\Generic\Tests\Rector\FuncCall\SwapFuncCallArgumentsRector\Fixture;
namespace Rector\Arguments\Tests\Rector\FuncCall\SwapFuncCallArgumentsRector\Fixture;
final class Fixture
{
@ -14,7 +14,7 @@ final class Fixture
-----
<?php
namespace Rector\Generic\Tests\Rector\FuncCall\SwapFuncCallArgumentsRector\Fixture;
namespace Rector\Arguments\Tests\Rector\FuncCall\SwapFuncCallArgumentsRector\Fixture;
final class Fixture
{

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\Tests\Rector\FuncCall\SwapFuncCallArgumentsRector;
namespace Rector\Arguments\Tests\Rector\FuncCall\SwapFuncCallArgumentsRector;
use Iterator;
use Rector\Testing\PHPUnit\AbstractRectorTestCase;

View File

@ -1,7 +1,7 @@
<?php
use Rector\Generic\Rector\FuncCall\SwapFuncCallArgumentsRector;
use Rector\Generic\ValueObject\SwapFuncCallArguments;
use Rector\Arguments\Rector\FuncCall\SwapFuncCallArgumentsRector;
use Rector\Arguments\ValueObject\SwapFuncCallArguments;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;

View File

@ -1,6 +1,6 @@
<?php
namespace Rector\Generic\Tests\Rector\RectorOrder\Fixture;
namespace Rector\Arguments\Tests\Rector\RectorOrder\Fixture;
use PHPUnit\Framework\TestCase;
@ -19,7 +19,7 @@ class SomeTest extends TestCase
-----
<?php
namespace Rector\Generic\Tests\Rector\RectorOrder\Fixture;
namespace Rector\Arguments\Tests\Rector\RectorOrder\Fixture;
use PHPUnit\Framework\TestCase;

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\Tests\Rector\RectorOrder;
namespace Rector\Arguments\Tests\Rector\RectorOrder;
use Iterator;
use Rector\Testing\PHPUnit\AbstractRectorTestCase;

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\Rector\ClassMethod;
namespace Rector\Defluent\Rector\ClassMethod;
use PhpParser\Node;
use PhpParser\Node\Expr\MethodCall;
@ -11,13 +11,13 @@ use PhpParser\Node\Stmt\Expression;
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
use Rector\Core\Exception\ShouldNotHappenException;
use Rector\Core\Rector\AbstractRector;
use Rector\Generic\ValueObject\NormalToFluent;
use Rector\Defluent\ValueObject\NormalToFluent;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
use Webmozart\Assert\Assert;
/**
* @see \Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector\NormalToFluentRectorTest
* @see \Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector\NormalToFluentRectorTest
*/
final class NormalToFluentRector extends AbstractRector implements ConfigurableRectorInterface
{

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\ValueObject;
namespace Rector\Defluent\ValueObject;
final class NormalToFluent
{

View File

@ -1,8 +1,8 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector\Fixture;
namespace Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector\Source\FluentInterfaceClass;
use Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector\Source\FluentInterfaceClass;
class ActionClass
{
@ -18,9 +18,9 @@ class ActionClass
-----
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector\Fixture;
namespace Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector\Source\FluentInterfaceClass;
use Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector\Source\FluentInterfaceClass;
class ActionClass
{

View File

@ -1,8 +1,8 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector\Fixture;
namespace Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector\Source\FluentInterfaceClass;
use Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector\Source\FluentInterfaceClass;
class ActionClass2
{
@ -18,9 +18,9 @@ class ActionClass2
-----
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector\Fixture;
namespace Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector\Source\FluentInterfaceClass;
use Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector\Source\FluentInterfaceClass;
class ActionClass2
{

View File

@ -1,8 +1,8 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector\Fixture;
namespace Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector\Source\FluentInterfaceClass;
use Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector\Source\FluentInterfaceClass;
class ActionClass3
{
@ -19,9 +19,9 @@ class ActionClass3
-----
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector\Fixture;
namespace Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector\Source\FluentInterfaceClass;
use Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector\Source\FluentInterfaceClass;
class ActionClass3
{

View File

@ -1,8 +1,8 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector\Fixture;
namespace Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector\Source\FluentInterfaceClass;
use Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector\Source\FluentInterfaceClass;
class ActionClass4
{
@ -19,9 +19,9 @@ class ActionClass4
-----
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector\Fixture;
namespace Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector\Source\FluentInterfaceClass;
use Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector\Source\FluentInterfaceClass;
class ActionClass4
{

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector;
namespace Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector;
use Iterator;
use Rector\Testing\PHPUnit\AbstractRectorTestCase;

View File

@ -0,0 +1,10 @@
<?php
declare(strict_types=1);
namespace Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector\Source;
final class FluentInterfaceClass
{
}

View File

@ -1,8 +1,8 @@
<?php
use Rector\Generic\Rector\ClassMethod\NormalToFluentRector;
use Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector\Source\FluentInterfaceClass;
use Rector\Generic\ValueObject\NormalToFluent;
use Rector\Defluent\Rector\ClassMethod\NormalToFluentRector;
use Rector\Defluent\Tests\Rector\ClassMethod\NormalToFluentRector\Source\FluentInterfaceClass;
use Rector\Defluent\ValueObject\NormalToFluent;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\Rector\ClassMethod;
namespace Rector\DependencyInjection\Rector\ClassMethod;
use PhpParser\Node;
use PhpParser\Node\Stmt\ClassLike;
@ -16,7 +16,7 @@ use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
/**
* @see \Rector\Generic\Tests\Rector\ClassMethod\AddMethodParentCallRector\AddMethodParentCallRectorTest
* @see \Rector\DependencyInjection\Tests\Rector\ClassMethod\AddMethodParentCallRector\AddMethodParentCallRectorTest
*/
final class AddMethodParentCallRector extends AbstractRector implements ConfigurableRectorInterface
{

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\Tests\Rector\ClassMethod\AddMethodParentCallRector;
namespace Rector\DependencyInjection\Tests\Rector\ClassMethod\AddMethodParentCallRector;
use Iterator;
use Rector\Testing\PHPUnit\AbstractRectorTestCase;

View File

@ -0,0 +1,32 @@
<?php
namespace Rector\DependencyInjection\Tests\Rector\ClassMethod\AddMethodParentCallRector\Fixture;
use Rector\DependencyInjection\Tests\Rector\ClassMethod\AddMethodParentCallRector\Source\ParentClassWithNewConstructor;
class SunshineCommand extends ParentClassWithNewConstructor
{
public function __construct()
{
$value = 5;
}
}
?>
-----
<?php
namespace Rector\DependencyInjection\Tests\Rector\ClassMethod\AddMethodParentCallRector\Fixture;
use Rector\DependencyInjection\Tests\Rector\ClassMethod\AddMethodParentCallRector\Source\ParentClassWithNewConstructor;
class SunshineCommand extends ParentClassWithNewConstructor
{
public function __construct()
{
$value = 5;
parent::__construct();
}
}
?>

View File

@ -0,0 +1,15 @@
<?php
namespace Rector\DependencyInjection\Tests\Rector\ClassMethod\AddMethodParentCallRector\Fixture;
use Rector\DependencyInjection\Tests\Rector\ClassMethod\AddMethodParentCallRector\Source\ParentClassWithNewConstructor;
class SkipAlreadyHas extends ParentClassWithNewConstructor
{
public function __construct()
{
$value = 5;
parent::__construct();
}
}

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\Tests\Rector\ClassMethod\AddMethodParentCallRector\Source;
namespace Rector\DependencyInjection\Tests\Rector\ClassMethod\AddMethodParentCallRector\Source;
class ParentClassWithNewConstructor
{

View File

@ -1,7 +1,7 @@
<?php
use Rector\Generic\Rector\ClassMethod\AddMethodParentCallRector;
use Rector\Generic\Tests\Rector\ClassMethod\AddMethodParentCallRector\Source\ParentClassWithNewConstructor;
use Rector\DependencyInjection\Rector\ClassMethod\AddMethodParentCallRector;
use Rector\DependencyInjection\Tests\Rector\ClassMethod\AddMethodParentCallRector\Source\ParentClassWithNewConstructor;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {

View File

@ -1,32 +0,0 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\AddMethodParentCallRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\AddMethodParentCallRector\Source\ParentClassWithNewConstructor;
class SunshineCommand extends ParentClassWithNewConstructor
{
public function __construct()
{
$value = 5;
}
}
?>
-----
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\AddMethodParentCallRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\AddMethodParentCallRector\Source\ParentClassWithNewConstructor;
class SunshineCommand extends ParentClassWithNewConstructor
{
public function __construct()
{
$value = 5;
parent::__construct();
}
}
?>

View File

@ -1,15 +0,0 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\AddMethodParentCallRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\AddMethodParentCallRector\Source\ParentClassWithNewConstructor;
class SkipAlreadyHas extends ParentClassWithNewConstructor
{
public function __construct()
{
$value = 5;
parent::__construct();
}
}

View File

@ -1,33 +0,0 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeContainerBuilder;
class SomeClass
{
public function create()
{
$containerBuilder = new SomeContainerBuilder();
$containerBuilder->compile();
}
}
?>
-----
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeContainerBuilder;
class SomeClass
{
public function create()
{
$containerBuilder = new SomeContainerBuilder();
$containerBuilder->compile(false);
}
}
?>

View File

@ -1,29 +0,0 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeContainerBuilder;
class CustomContainerBuilder extends SomeContainerBuilder
{
public function addCompilerPass($pass, $type)
{
}
}
?>
-----
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeContainerBuilder;
class CustomContainerBuilder extends SomeContainerBuilder
{
public function addCompilerPass($pass, $type, int $priority = 0)
{
}
}
?>

View File

@ -1,12 +0,0 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Source\SomeContainerBuilder;
class SkipAlreadyAdded extends SomeContainerBuilder
{
public function addCompilerPass($pass, $type, int $priority = 10)
{
}
}

View File

@ -1,10 +0,0 @@
<?php
declare(strict_types=1);
namespace Rector\Generic\Tests\Rector\ClassMethod\ArgumentAdderRector\Source;
class SomeContainerBuilder
{
}

View File

@ -1,10 +0,0 @@
<?php
declare(strict_types=1);
namespace Rector\Generic\Tests\Rector\ClassMethod\NormalToFluentRector\Source;
final class FluentInterfaceClass
{
}

View File

@ -1,34 +0,0 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source\OneToManyInterface;
class SomeClass implements OneToManyInterface
{
public function getNode(): string
{
return 'Echo_';
}
}
?>
-----
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source\OneToManyInterface;
class SomeClass implements OneToManyInterface
{
/**
* @return string[]
*/
public function getNodes(): array
{
return ['Echo_'];
}
}
?>

View File

@ -1,31 +0,0 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source\OneToManyInterface;
class NoReturnType implements OneToManyInterface
{
public function getNode()
{
return 'Echo_';
}
}
?>
-----
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source\OneToManyInterface;
class NoReturnType implements OneToManyInterface
{
public function getNodes(): array
{
return ['Echo_'];
}
}
?>

View File

@ -1,34 +0,0 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source\OneToManyInterface;
class ReturnClassConstFetch implements OneToManyInterface
{
public function getNode(): string
{
return self::class;
}
}
?>
-----
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source\OneToManyInterface;
class ReturnClassConstFetch implements OneToManyInterface
{
/**
* @return string[]
*/
public function getNodes(): array
{
return [self::class];
}
}
?>

View File

@ -1,10 +0,0 @@
<?php
declare(strict_types=1);
namespace Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source;
interface OneToManyInterface
{
}

View File

@ -1,31 +0,0 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\WrapReturnRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\WrapReturnRector\Source\SomeReturnClass;
final class SomeClass extends SomeReturnClass
{
public function getItem()
{
return 1;
}
}
?>
-----
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\WrapReturnRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\WrapReturnRector\Source\SomeReturnClass;
final class SomeClass extends SomeReturnClass
{
public function getItem()
{
return [1];
}
}
?>

View File

@ -1,13 +0,0 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\WrapReturnRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\WrapReturnRector\Source\SomeReturnClass;
final class SkipAllReadyArray extends SomeReturnClass
{
public function getItem()
{
return [1];
}
}

View File

@ -1,10 +0,0 @@
<?php
declare(strict_types=1);
namespace Rector\Generic\Tests\Rector\ClassMethod\WrapReturnRector\Source;
class SomeReturnClass
{
}

View File

@ -3,7 +3,7 @@
namespace Rector\Renaming\Tests\Rector\FileWithoutNamespace\PseudoNamespaceToNamespaceRector\Fixture;
use PHPUnit_TestCase;
use Rector\Generic\Tests\Rector\Name\PseudoNamespaceToNamespaceRector\Source\Keep_This;
use Rector\Arguments\Tests\Rector\Name\PseudoNamespaceToNamespaceRector\Source\Keep_This;
class SomeTestCase
{
@ -25,7 +25,7 @@ class SomeTestCase
namespace Rector\Renaming\Tests\Rector\FileWithoutNamespace\PseudoNamespaceToNamespaceRector\Fixture;
use PHPUnit\TestCase;
use Rector\Generic\Tests\Rector\Name\PseudoNamespaceToNamespaceRector\Source\Keep_This;
use Rector\Arguments\Tests\Rector\Name\PseudoNamespaceToNamespaceRector\Source\Keep_This;
class SomeTestCase
{

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\Rector\ClassMethod;
namespace Rector\Transform\Rector\ClassMethod;
use PhpParser\Node;
use PhpParser\Node\Identifier;
@ -14,14 +14,14 @@ use PHPStan\Type\MixedType;
use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger;
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
use Rector\Core\Rector\AbstractRector;
use Rector\Generic\ValueObject\SingleToManyMethod;
use Rector\NodeTypeResolver\Node\AttributeKey;
use Rector\Transform\ValueObject\SingleToManyMethod;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
use Webmozart\Assert\Assert;
/**
* @see \Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector\SingleToManyMethodRectorTest
* @see \Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector\SingleToManyMethodRectorTest
*/
final class SingleToManyMethodRector extends AbstractRector implements ConfigurableRectorInterface
{

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\Rector\ClassMethod;
namespace Rector\Transform\Rector\ClassMethod;
use PhpParser\Node;
use PhpParser\Node\Expr\Array_;
@ -11,13 +11,13 @@ use PhpParser\Node\Stmt\ClassMethod;
use PhpParser\Node\Stmt\Return_;
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
use Rector\Core\Rector\AbstractRector;
use Rector\Generic\ValueObject\WrapReturn;
use Rector\Transform\ValueObject\WrapReturn;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
use Webmozart\Assert\Assert;
/**
* @see \Rector\Generic\Tests\Rector\ClassMethod\WrapReturnRector\WrapReturnRectorTest
* @see \Rector\Transform\Tests\Rector\ClassMethod\WrapReturnRector\WrapReturnRectorTest
*/
final class WrapReturnRector extends AbstractRector implements ConfigurableRectorInterface
{

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\ValueObject;
namespace Rector\Transform\ValueObject;
final class SingleToManyMethod
{

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\ValueObject;
namespace Rector\Transform\ValueObject;
final class WrapReturn
{

View File

@ -0,0 +1,34 @@
<?php
namespace Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector\Fixture;
use Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source\OneToManyInterface;
class SomeClass implements OneToManyInterface
{
public function getNode(): string
{
return 'Echo_';
}
}
?>
-----
<?php
namespace Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector\Fixture;
use Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source\OneToManyInterface;
class SomeClass implements OneToManyInterface
{
/**
* @return string[]
*/
public function getNodes(): array
{
return ['Echo_'];
}
}
?>

View File

@ -1,8 +1,8 @@
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector\Fixture;
namespace Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source\OneToManyInterface;
use Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source\OneToManyInterface;
class MultiReturn implements OneToManyInterface
{
@ -20,9 +20,9 @@ class MultiReturn implements OneToManyInterface
-----
<?php
namespace Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector\Fixture;
namespace Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector\Fixture;
use Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source\OneToManyInterface;
use Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source\OneToManyInterface;
class MultiReturn implements OneToManyInterface
{

View File

@ -0,0 +1,31 @@
<?php
namespace Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector\Fixture;
use Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source\OneToManyInterface;
class NoReturnType implements OneToManyInterface
{
public function getNode()
{
return 'Echo_';
}
}
?>
-----
<?php
namespace Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector\Fixture;
use Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source\OneToManyInterface;
class NoReturnType implements OneToManyInterface
{
public function getNodes(): array
{
return ['Echo_'];
}
}
?>

View File

@ -0,0 +1,34 @@
<?php
namespace Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector\Fixture;
use Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source\OneToManyInterface;
class ReturnClassConstFetch implements OneToManyInterface
{
public function getNode(): string
{
return self::class;
}
}
?>
-----
<?php
namespace Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector\Fixture;
use Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source\OneToManyInterface;
class ReturnClassConstFetch implements OneToManyInterface
{
/**
* @return string[]
*/
public function getNodes(): array
{
return [self::class];
}
}
?>

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector;
namespace Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector;
use Iterator;
use Rector\Testing\PHPUnit\AbstractRectorTestCase;

View File

@ -0,0 +1,10 @@
<?php
declare(strict_types=1);
namespace Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source;
interface OneToManyInterface
{
}

View File

@ -1,8 +1,8 @@
<?php
use Rector\Generic\Rector\ClassMethod\SingleToManyMethodRector;
use Rector\Generic\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source\OneToManyInterface;
use Rector\Generic\ValueObject\SingleToManyMethod;
use Rector\Transform\Rector\ClassMethod\SingleToManyMethodRector;
use Rector\Transform\Tests\Rector\ClassMethod\SingleToManyMethodRector\Source\OneToManyInterface;
use Rector\Transform\ValueObject\SingleToManyMethod;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;

View File

@ -0,0 +1,31 @@
<?php
namespace Rector\Transform\Tests\Rector\ClassMethod\WrapReturnRector\Fixture;
use Rector\Transform\Tests\Rector\ClassMethod\WrapReturnRector\Source\SomeReturnClass;
final class SomeClass extends SomeReturnClass
{
public function getItem()
{
return 1;
}
}
?>
-----
<?php
namespace Rector\Transform\Tests\Rector\ClassMethod\WrapReturnRector\Fixture;
use Rector\Transform\Tests\Rector\ClassMethod\WrapReturnRector\Source\SomeReturnClass;
final class SomeClass extends SomeReturnClass
{
public function getItem()
{
return [1];
}
}
?>

View File

@ -0,0 +1,13 @@
<?php
namespace Rector\Transform\Tests\Rector\ClassMethod\WrapReturnRector\Fixture;
use Rector\Transform\Tests\Rector\ClassMethod\WrapReturnRector\Source\SomeReturnClass;
final class SkipAllReadyArray extends SomeReturnClass
{
public function getItem()
{
return [1];
}
}

View File

@ -0,0 +1,10 @@
<?php
declare(strict_types=1);
namespace Rector\Transform\Tests\Rector\ClassMethod\WrapReturnRector\Source;
class SomeReturnClass
{
}

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Generic\Tests\Rector\ClassMethod\WrapReturnRector;
namespace Rector\Transform\Tests\Rector\ClassMethod\WrapReturnRector;
use Iterator;
use Rector\Testing\PHPUnit\AbstractRectorTestCase;

View File

@ -1,8 +1,8 @@
<?php
use Rector\Generic\Rector\ClassMethod\WrapReturnRector;
use Rector\Generic\Tests\Rector\ClassMethod\WrapReturnRector\Source\SomeReturnClass;
use Rector\Generic\ValueObject\WrapReturn;
use Rector\Transform\Rector\ClassMethod\WrapReturnRector;
use Rector\Transform\Tests\Rector\ClassMethod\WrapReturnRector\Source\SomeReturnClass;
use Rector\Transform\ValueObject\WrapReturn;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\SymfonyPhpConfig\ValueObjectInliner;

View File

@ -8,13 +8,16 @@ use Symplify\SymfonyPhpConfig\ValueObjectInliner;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(FuncCallToMethodCallRector::class)
->call('configure', [[
FuncCallToMethodCallRector::FUNC_CALL_TO_CLASS_METHOD_CALL => ValueObjectInliner::inline([
new FuncCallToMethodCall('view', 'Namespaced\SomeRenderer', 'render'),
new FuncCallToMethodCall('translate', SomeTranslator::class, 'translateMethod'),
new FuncCallToMethodCall(
'Rector\Generic\Tests\Rector\Function_\FuncCallToMethodCallRector\Source\some_view_function',
'Rector\Transform\Tests\Rector\Function_\FuncCallToMethodCallRector\Source\some_view_function',
'Namespaced\SomeRenderer',
'render'
),