Skip to content

Commit c66d933

Browse files
authored
Deprecate FunctionArgumentDefaultValueReplacerRector in favor of dedicated rules (#8692)
1 parent 0107cc8 commit c66d933

20 files changed

Lines changed: 350 additions & 177 deletions

‎config/set/php-version-based.php‎

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@
77
use PhpParser\Node\Expr\Cast\Int_;
88
use PhpParser\Node\Expr\Cast\String_;
99
use Rector\Arguments\Rector\ClassMethod\ArgumentAdderRector;
10-
use Rector\Arguments\Rector\FuncCall\FunctionArgumentDefaultValueReplacerRector;
1110
use Rector\Arguments\ValueObject\ArgumentAdder;
12-
use Rector\Arguments\ValueObject\ReplaceFuncCallArgumentDefaultValue;
1311
use Rector\CodeQuality\Rector\ClassMethod\OptionalParametersAfterRequiredRector;
1412
use Rector\CodingStyle\Rector\ArrowFunction\ArrowFunctionDelegatingCallToFirstClassCallableRector;
1513
use Rector\CodingStyle\Rector\Closure\ClosureDelegatingCallToFirstClassCallableRector;
@@ -95,6 +93,8 @@
9593
use Rector\Php80\Rector\ClassMethod\FinalPrivateToPrivateVisibilityRector;
9694
use Rector\Php80\Rector\ClassMethod\SetStateToStaticRector;
9795
use Rector\Php80\Rector\FuncCall\ClassOnObjectRector;
96+
use Rector\Php80\Rector\FuncCall\GetHeadersArgumentFormatRector;
97+
use Rector\Php80\Rector\FuncCall\VersionCompareFuncCallArgumentRector;
9898
use Rector\Php80\Rector\Identical\StrEndsWithRector;
9999
use Rector\Php80\Rector\Identical\StrStartsWithRector;
100100
use Rector\Php80\Rector\NotIdentical\StrContainsRector;
@@ -270,6 +270,8 @@
270270
ClassOnThisVariableObjectRector::class,
271271
ConsistentImplodeRector::class,
272272
OptionalParametersAfterRequiredRector::class,
273+
VersionCompareFuncCallArgumentRector::class,
274+
GetHeadersArgumentFormatRector::class,
273275

274276
// PHP 8.1
275277
ReturnNeverTypeRector::class,
@@ -468,18 +470,6 @@
468470
'pg_setclientencoding' => 'pg_set_client_encoding',
469471
], PhpVersion::PHP_80);
470472

471-
$rectorConfig->ruleWithConfigurationPhpVersionBound(FunctionArgumentDefaultValueReplacerRector::class, [
472-
new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'gte', 'ge'),
473-
new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'lte', 'le'),
474-
new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, '', '!='),
475-
new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, '!', '!='),
476-
new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'g', 'gt'),
477-
new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'l', 'lt'),
478-
new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'n', 'ne'),
479-
new ReplaceFuncCallArgumentDefaultValue('get_headers', 1, 0, false),
480-
new ReplaceFuncCallArgumentDefaultValue('get_headers', 1, 1, true),
481-
], PhpVersion::PHP_80);
482-
483473
// PHP 8.5
484474
$rectorConfig->ruleWithConfigurationPhpVersionBound(RemoveFuncCallArgRector::class, [
485475
// https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_key_length_parameter_of_openssl_pkey_derive

‎config/set/php80.php‎

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
declare(strict_types=1);
44

55
use Rector\Arguments\Rector\ClassMethod\ArgumentAdderRector;
6-
use Rector\Arguments\Rector\FuncCall\FunctionArgumentDefaultValueReplacerRector;
76
use Rector\Arguments\ValueObject\ArgumentAdder;
8-
use Rector\Arguments\ValueObject\ReplaceFuncCallArgumentDefaultValue;
97
use Rector\CodeQuality\Rector\ClassMethod\OptionalParametersAfterRequiredRector;
108
use Rector\CodingStyle\Rector\FuncCall\ConsistentImplodeRector;
119
use Rector\Config\RectorConfig;
@@ -18,6 +16,8 @@
1816
use Rector\Php80\Rector\ClassMethod\FinalPrivateToPrivateVisibilityRector;
1917
use Rector\Php80\Rector\ClassMethod\SetStateToStaticRector;
2018
use Rector\Php80\Rector\FuncCall\ClassOnObjectRector;
19+
use Rector\Php80\Rector\FuncCall\GetHeadersArgumentFormatRector;
20+
use Rector\Php80\Rector\FuncCall\VersionCompareFuncCallArgumentRector;
2121
use Rector\Php80\Rector\Identical\StrEndsWithRector;
2222
use Rector\Php80\Rector\Identical\StrStartsWithRector;
2323
use Rector\Php80\Rector\NotIdentical\StrContainsRector;
@@ -47,6 +47,8 @@
4747
ClassOnThisVariableObjectRector::class,
4848
ConsistentImplodeRector::class,
4949
OptionalParametersAfterRequiredRector::class,
50+
VersionCompareFuncCallArgumentRector::class,
51+
GetHeadersArgumentFormatRector::class,
5052
]);
5153

5254
$rectorConfig
@@ -91,17 +93,4 @@
9193
'pg_result' => 'pg_fetch_result',
9294
'pg_setclientencoding' => 'pg_set_client_encoding',
9395
]);
94-
95-
$rectorConfig
96-
->ruleWithConfiguration(FunctionArgumentDefaultValueReplacerRector::class, [
97-
new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'gte', 'ge'),
98-
new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'lte', 'le'),
99-
new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, '', '!='),
100-
new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, '!', '!='),
101-
new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'g', 'gt'),
102-
new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'l', 'lt'),
103-
new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'n', 'ne'),
104-
new ReplaceFuncCallArgumentDefaultValue('get_headers', 1, 0, false),
105-
new ReplaceFuncCallArgumentDefaultValue('get_headers', 1, 1, true),
106-
]);
10796
};

‎rules-tests/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector/Fixture/skip_first_class_callable.php.inc‎

Lines changed: 0 additions & 11 deletions
This file was deleted.

‎rules-tests/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector/Fixture/skip_version_compare.php.inc‎

Lines changed: 0 additions & 15 deletions
This file was deleted.

‎rules-tests/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector/Fixture/some_function.php.inc‎

Lines changed: 0 additions & 27 deletions
This file was deleted.

‎rules-tests/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector/Fixture/version_compare.php.inc‎

Lines changed: 0 additions & 29 deletions
This file was deleted.

‎rules-tests/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector/config/configured_rule.php‎

Lines changed: 0 additions & 21 deletions
This file was deleted.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
3+
namespace Rector\Tests\Php80\Rector\FuncCall\GetHeadersArgumentFormatRector\Fixture;
4+
5+
class FormatArgument
6+
{
7+
public function run($url)
8+
{
9+
get_headers($url, 0);
10+
get_headers($url, 1);
11+
}
12+
}
13+
14+
?>
15+
-----
16+
<?php
17+
18+
namespace Rector\Tests\Php80\Rector\FuncCall\GetHeadersArgumentFormatRector\Fixture;
19+
20+
class FormatArgument
21+
{
22+
public function run($url)
23+
{
24+
get_headers($url, false);
25+
get_headers($url, true);
26+
}
27+
}
28+
29+
?>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace Rector\Tests\Php80\Rector\FuncCall\GetHeadersArgumentFormatRector\Fixture;
4+
5+
class SkipGetHeaders
6+
{
7+
public function run($url, $format)
8+
{
9+
get_headers($url);
10+
get_headers($url, $format);
11+
get_headers($url, true);
12+
get_headers(...);
13+
}
14+
}

rules-tests/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector/FunctionArgumentDefaultValueReplacerRectorTest.php renamed to rules-tests/Php80/Rector/FuncCall/GetHeadersArgumentFormatRector/GetHeadersArgumentFormatRectorTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
declare(strict_types=1);
44

5-
namespace Rector\Tests\Arguments\Rector\FuncCall\FunctionArgumentDefaultValueReplacerRector;
5+
namespace Rector\Tests\Php80\Rector\FuncCall\GetHeadersArgumentFormatRector;
66

77
use Iterator;
88
use PHPUnit\Framework\Attributes\DataProvider;
99
use Rector\Testing\PHPUnit\AbstractRectorTestCase;
1010

11-
final class FunctionArgumentDefaultValueReplacerRectorTest extends AbstractRectorTestCase
11+
final class GetHeadersArgumentFormatRectorTest extends AbstractRectorTestCase
1212
{
1313
#[DataProvider('provideData')]
1414
public function test(string $filePath): void

0 commit comments

Comments
 (0)