Skip to content

Commit bca6a54

Browse files
committed
Refactor to allow register more functions to specific position to be filled with strict parameter
1 parent a6c162f commit bca6a54

2 files changed

Lines changed: 19 additions & 9 deletions

File tree

rector.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
use Rector\CodeQuality\Rector\Return_\SimplifyUselessVariableRector;
55
use Rector\SOLID\Rector\If_\RemoveAlwaysElseRector;
66
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
7-
use Utils\Rector\PassTrueToThirdParameterInArrayRector;
7+
use Utils\Rector\PassStrictParameterToFunctionParameterRector;
88
use Utils\Rector\UnderscoreToCamelCaseVariableNameRector;
99

1010
return static function (ContainerConfigurator $containerConfigurator): void {
@@ -41,5 +41,5 @@
4141
$services->set(UnderscoreToCamelCaseVariableNameRector::class);
4242
$services->set(SimplifyUselessVariableRector::class);
4343
$services->set(RemoveAlwaysElseRector::class);
44-
$services->set(PassTrueToThirdParameterInArrayRector::class);
44+
$services->set(PassStrictParameterToFunctionParameterRector::class);
4545
};

utils/Rector/PassTrueToThirdParameterInArrayRector.php renamed to utils/Rector/PassStrictParameterToFunctionParameterRector.php

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,18 @@
1414
use Rector\Core\RectorDefinition\RectorDefinition;
1515

1616
/**
17-
* Pass true to 3rd parameter of in_array when no value provided
17+
* Pass strict to function parameter on specific position argument when no value provided
1818
*/
19-
final class PassTrueToThirdParameterInArrayRector extends AbstractRector
19+
final class PassStrictParameterToFunctionParameterRector extends AbstractRector
2020
{
21+
private const FUNCTION_WITH_ARG_POSITION = [
22+
// position start from 0
23+
'in_array' => 2,
24+
];
25+
2126
public function getDefinition(): RectorDefinition
2227
{
23-
return new RectorDefinition('Pass true to 3rd parameter of in_array if no value provided', [
28+
return new RectorDefinition('Pass strict to function parameter on specific position argument when no value provided', [
2429
new CodeSample(
2530
<<<'CODE_SAMPLE'
2631
in_array('a', $array);
@@ -52,18 +57,23 @@ public function refactor(Node $node): ?Node
5257
return null;
5358
}
5459

55-
if ($name->toString() !== 'in_array')
60+
$functions = array_keys(self::FUNCTION_WITH_ARG_POSITION);
61+
$currentFunctionName = $name->toString();
62+
63+
if (! in_array($currentFunctionName, $functions, true))
5664
{
5765
return null;
5866
}
5967

60-
if (isset($node->args[2]))
68+
$position = $functions[$currentFunctionName];
69+
70+
if (isset($node->args[$position]))
6171
{
6272
return null;
6373
}
6474

65-
$name = new Name('true');
66-
$node->args[2] = new Arg(new ConstFetch($name));
75+
$name = new Name('true');
76+
$node->args[$position] = new Arg(new ConstFetch($name));
6777

6878
return $node;
6979
}

0 commit comments

Comments
 (0)