Skip to content

Commit 89accb6

Browse files
[CodeQuality] Change behaviour of OptionalParametersAfterRequiredRector to fill null default value when previous param is optional (#7222)
* [CodeQuality] Change behaviour of OptionalParametersAfterRequiredRector to fill null default value when previous param is optional * remove unused classes * [ci-review] Rector Rectify * fix phpstan * add param typed * add min php version nullable type for use of it --------- Co-authored-by: GitHub Action <actions@github.com>
1 parent f9b2954 commit 89accb6

16 files changed

Lines changed: 118 additions & 288 deletions

File tree

rules-tests/CodeQuality/Rector/ClassMethod/OptionalParametersAfterRequiredRector/Fixture/mashup.php.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ namespace Rector\Tests\CodeQuality\Rector\ClassMethod\OptionalParametersAfterReq
1717

1818
class Mashup
1919
{
20-
public function run($required, $yetRequired, $optional = 1, $anotherOptional = false)
20+
public function run($optional = 1, $required = null, $anotherOptional = false, $yetRequired = null)
2121
{
2222
}
2323
}

rules-tests/CodeQuality/Rector/ClassMethod/OptionalParametersAfterRequiredRector/Fixture/new_the_constructor.php.inc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ namespace Rector\Tests\CodeQuality\Rector\ClassMethod\OptionalParametersAfterReq
2626

2727
final class NewTheConstructor
2828
{
29-
public function __construct($required, $optional = 1)
29+
public function __construct($optional = 1, $required = null)
3030
{
3131
}
3232

3333
public function create()
3434
{
35-
return new self(5, 1);
35+
return new self(1, 5);
3636
}
3737
}
3838

rules-tests/CodeQuality/Rector/ClassMethod/OptionalParametersAfterRequiredRector/Fixture/on_function.php.inc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ foo($optional, $required);
1414

1515
namespace Rector\Tests\CodeQuality\Rector\ClassMethod\OptionalParametersAfterRequiredRector\Fixture;
1616

17-
function foo($required, $optional = 1)
17+
function foo($optional = 1, $required = null)
1818
{
1919
}
2020

21-
foo($required, $optional);
21+
foo($optional, $required);
2222

2323
?>

rules-tests/CodeQuality/Rector/ClassMethod/OptionalParametersAfterRequiredRector/Fixture/some_object.php.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ namespace Rector\Tests\CodeQuality\Rector\ClassMethod\OptionalParametersAfterReq
1717

1818
class SomeObject
1919
{
20-
public function run($required, $optional = 1)
20+
public function run($optional = 1, $required = null)
2121
{
2222
}
2323
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<?php
2+
3+
namespace Rector\Tests\CodeQuality\Rector\ClassMethod\OptionalParametersAfterRequiredRector\Fixture;
4+
5+
class TypedParams
6+
{
7+
function run1($optional = 1, int $required)
8+
{
9+
}
10+
11+
function run2($optional = 1, string|int $required)
12+
{
13+
}
14+
15+
function run3($optional = 1, null|int $required)
16+
{
17+
}
18+
}
19+
20+
?>
21+
-----
22+
<?php
23+
24+
namespace Rector\Tests\CodeQuality\Rector\ClassMethod\OptionalParametersAfterRequiredRector\Fixture;
25+
26+
class TypedParams
27+
{
28+
function run1($optional = 1, ?int $required = null)
29+
{
30+
}
31+
32+
function run2($optional = 1, string|int|null $required = null)
33+
{
34+
}
35+
36+
function run3($optional = 1, null|int $required = null)
37+
{
38+
}
39+
}
40+
41+
?>

rules-tests/CodeQuality/Rector/ClassMethod/OptionalParametersAfterRequiredRector/Fixture/update_method_call.php.inc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ namespace Rector\Tests\CodeQuality\Rector\ClassMethod\OptionalParametersAfterReq
2626

2727
final class UpdateMethodCall
2828
{
29-
public function run($required, $optional = 1)
29+
public function run($optional = 1, $required = null)
3030
{
3131
}
3232

3333
public function process()
3434
{
35-
$this->run(5, 1);
35+
$this->run(1, 5);
3636
}
3737
}
3838

rules-tests/CodeQuality/Rector/ClassMethod/OptionalParametersAfterRequiredRector/Fixture/update_method_call_by_fluent.php.inc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ namespace Rector\Tests\CodeQuality\Rector\ClassMethod\OptionalParametersAfterReq
3232

3333
final class UpdateMethodCallByFluent
3434
{
35-
public function run($required, $optional = 1)
35+
public function run($optional = 1, $required = null)
3636
{
3737
return $this;
3838
}
@@ -43,7 +43,7 @@ final class UpdateMethodCallByFluent
4343

4444
public function process()
4545
{
46-
$this->run(5, 1)
46+
$this->run(1, 5)
4747
->execute();
4848
}
4949
}

rules-tests/CodeQuality/Rector/ClassMethod/OptionalParametersAfterRequiredRector/Fixture/update_method_call_by_fluent2.php.inc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,15 @@ final class UpdateMethodCallByFluent2
3838
return $this;
3939
}
4040

41-
public function run($required, $optional = 1)
41+
public function run($optional = 1, $required = null)
4242
{
4343
return $this;
4444
}
4545

4646
public function process()
4747
{
4848
$this->execute()
49-
->run(5, 1);
49+
->run(1, 5);
5050
}
5151
}
5252

rules-tests/CodeQuality/Rector/ClassMethod/OptionalParametersAfterRequiredRector/Fixture/update_params_order_of_static_method_call.php.inc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ namespace Rector\Tests\CodeQuality\Rector\ClassMethod\OptionalParametersAfterReq
2424

2525
final class WebUtil
2626
{
27-
public static function radioList($name, $selected, $items = [], $class = "", $groupingCount = 0, $groupingClass = "", $required = false)
27+
public static function radioList($name, $items = [], $selected = null, $class = "", $groupingCount = 0, $groupingClass = "", $required = false)
2828
{
2929

3030
}
3131
}
3232

33-
WebUtil::radioList("inPersonOrVirtual", $selected, $inPersonOrVirtualItems, "", 1, "col-sm-3 margin-bottom-10");
33+
WebUtil::radioList("inPersonOrVirtual", $inPersonOrVirtualItems, $selected, "", 1, "col-sm-3 margin-bottom-10");
3434

3535
?>

rules-tests/CodeQuality/Rector/ClassMethod/OptionalParametersAfterRequiredRector/Fixture/uses_with_less_params.php.inc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,14 @@ namespace Rector\Tests\CodeQuality\Rector\ClassMethod\OptionalParametersAfterReq
2727

2828
final class UsesWithLess
2929
{
30-
public function blah($required, $optional = 1, $optional_2 = 2)
30+
public function blah($optional = 1, $required = null, $optional_2 = 2)
3131
{
3232
}
3333

3434
public function process()
3535
{
36-
$this->blah(5, 1);
37-
$this->blah(5, 1, 2);
36+
$this->blah(1, 5);
37+
$this->blah(1, 5, 2);
3838
}
3939
}
4040

0 commit comments

Comments
 (0)