diff --git a/phpcs.xml b/phpcs.xml
index e48c9dd..fda907d 100644
--- a/phpcs.xml
+++ b/phpcs.xml
@@ -4,7 +4,6 @@
- src/Rector
tests/test_apps
tests/TestCase/Rector
diff --git a/src/Rector/NodeAnalyzer/FluentChainMethodCallNodeAnalyzer.php b/src/Rector/NodeAnalyzer/FluentChainMethodCallNodeAnalyzer.php
index 1be55e8..2a631e8 100644
--- a/src/Rector/NodeAnalyzer/FluentChainMethodCallNodeAnalyzer.php
+++ b/src/Rector/NodeAnalyzer/FluentChainMethodCallNodeAnalyzer.php
@@ -1,5 +1,5 @@
var;
while ($callerNode instanceof MethodCall && $callerNode->var instanceof MethodCall) {
@@ -29,17 +29,20 @@ public function resolveRootMethodCall(MethodCall $methodCall) : ?MethodCall
if ($callerNode instanceof MethodCall) {
return $callerNode;
}
+
return null;
}
+
/**
* @return \PhpParser\Node\Expr|\PhpParser\Node\Name
*/
- public function resolveRootExpr(MethodCall $methodCall)
+ public function resolveRootExpr(MethodCall $methodCall): Expr|Name
{
$callerNode = $methodCall->var;
while ($callerNode instanceof MethodCall || $callerNode instanceof StaticCall) {
$callerNode = $callerNode instanceof StaticCall ? $callerNode->class : $callerNode->var;
}
+
return $callerNode;
}
}
diff --git a/src/Rector/Rector/MethodCall/AddMethodCallArgsRector.php b/src/Rector/Rector/MethodCall/AddMethodCallArgsRector.php
index 3229ef6..de08d2a 100644
--- a/src/Rector/Rector/MethodCall/AddMethodCallArgsRector.php
+++ b/src/Rector/Rector/MethodCall/AddMethodCallArgsRector.php
@@ -25,7 +25,7 @@ final class AddMethodCallArgsRector extends AbstractRector implements Configurab
public const ADD_METHOD_CALL_ARGS = 'add_method_call_args';
/**
- * @var \Cake\Upgrade\Rector\ValueObject\AddMethodCallArgs[]
+ * @var array<\Cake\Upgrade\Rector\ValueObject\AddMethodCallArgs>
*/
private array $callsWithAddMethodCallArgs = [];
@@ -97,7 +97,7 @@ public function refactor(Node $node): ?Node
}
/**
- * @param mixed[] $configuration
+ * @param array $configuration
*/
public function configure(array $configuration): void
{
diff --git a/src/Rector/Rector/MethodCall/ArrayToFluentCallRector.php b/src/Rector/Rector/MethodCall/ArrayToFluentCallRector.php
index b509375..6f69669 100644
--- a/src/Rector/Rector/MethodCall/ArrayToFluentCallRector.php
+++ b/src/Rector/Rector/MethodCall/ArrayToFluentCallRector.php
@@ -3,13 +3,13 @@
namespace Cake\Upgrade\Rector\Rector\MethodCall;
+use Cake\Upgrade\Rector\ValueObject\ArrayItemsAndFluentClass;
+use Cake\Upgrade\Rector\ValueObject\ArrayToFluentCall;
+use Cake\Upgrade\Rector\ValueObject\FactoryMethod;
use PhpParser\Node;
use PhpParser\Node\Expr\Array_;
use PhpParser\Node\Expr\MethodCall;
use PhpParser\Node\Scalar\String_;
-use Cake\Upgrade\Rector\ValueObject\ArrayItemsAndFluentClass;
-use Cake\Upgrade\Rector\ValueObject\ArrayToFluentCall;
-use Cake\Upgrade\Rector\ValueObject\FactoryMethod;
use Rector\Contract\Rector\ConfigurableRectorInterface;
use Rector\Rector\AbstractRector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
@@ -31,12 +31,12 @@ final class ArrayToFluentCallRector extends AbstractRector implements Configurab
public const FACTORY_METHODS = 'factory_methods';
/**
- * @var \Cake\Upgrade\Rector\ValueObject\ArrayToFluentCall[]
+ * @var array<\Cake\Upgrade\Rector\ValueObject\ArrayToFluentCall>
*/
private array $arraysToFluentCalls = [];
/**
- * @var \Cake\Upgrade\Rector\ValueObject\FactoryMethod[]
+ * @var array<\Cake\Upgrade\Rector\ValueObject\FactoryMethod>
*/
private array $factoryMethods = [];
@@ -115,7 +115,7 @@ public function refactor(Node $node): ?Node
}
/**
- * @param mixed[] $configuration
+ * @param array $configuration
*/
public function configure(array $configuration): void
{
diff --git a/src/Rector/Rector/MethodCall/ModalToGetSetRector.php b/src/Rector/Rector/MethodCall/ModalToGetSetRector.php
index fc697aa..82b6be9 100644
--- a/src/Rector/Rector/MethodCall/ModalToGetSetRector.php
+++ b/src/Rector/Rector/MethodCall/ModalToGetSetRector.php
@@ -3,11 +3,11 @@
namespace Cake\Upgrade\Rector\Rector\MethodCall;
+use Cake\Upgrade\Rector\ValueObject\ModalToGetSet;
use PhpParser\Node;
use PhpParser\Node\Expr\Array_;
use PhpParser\Node\Expr\MethodCall;
use PhpParser\Node\Identifier;
-use Cake\Upgrade\Rector\ValueObject\ModalToGetSet;
use Rector\Contract\Rector\ConfigurableRectorInterface;
use Rector\Rector\AbstractRector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
@@ -27,7 +27,7 @@ final class ModalToGetSetRector extends AbstractRector implements ConfigurableRe
public const UNPREFIXED_METHODS_TO_GET_SET = 'unprefixed_methods_to_get_set';
/**
- * @var \Cake\Upgrade\Rector\ValueObject\ModalToGetSet[]
+ * @var array<\Cake\Upgrade\Rector\ValueObject\ModalToGetSet>
*/
private array $unprefixedMethodsToGetSet = [];
@@ -92,7 +92,7 @@ public function refactor(Node $node): ?Node
}
/**
- * @param mixed[] $configuration
+ * @param array $configuration
*/
public function configure(array $configuration): void
{
diff --git a/src/Rector/Rector/MethodCall/OptionsArrayToNamedParametersRector.php b/src/Rector/Rector/MethodCall/OptionsArrayToNamedParametersRector.php
index 8dd9c5c..8d0fdad 100644
--- a/src/Rector/Rector/MethodCall/OptionsArrayToNamedParametersRector.php
+++ b/src/Rector/Rector/MethodCall/OptionsArrayToNamedParametersRector.php
@@ -3,20 +3,17 @@
namespace Cake\Upgrade\Rector\Rector\MethodCall;
+use Cake\Upgrade\Rector\ValueObject\OptionsArrayToNamedParameters;
use PhpParser\Node;
+use PhpParser\Node\Arg;
use PhpParser\Node\Expr\Array_;
use PhpParser\Node\Expr\MethodCall;
-use PhpParser\Node\Scalar\String_;
-use Cake\Upgrade\Rector\ValueObject\OptionsArrayToNamedParameters;
-use PhpParser\Node\Arg;
use PhpParser\Node\Identifier;
use Rector\Contract\Rector\ConfigurableRectorInterface;
use Rector\Rector\AbstractRector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
-use function RectorPrefix202304\dump_node;
-
final class OptionsArrayToNamedParametersRector extends AbstractRector implements ConfigurableRectorInterface
{
public const OPTIONS_TO_NAMED_PARAMETERS = 'options_to_named_parameters';
@@ -24,7 +21,7 @@ final class OptionsArrayToNamedParametersRector extends AbstractRector implement
/**
* @var \Cake\Upgrade\Rector\ValueObject\OptionsArrayToNamedParameters
*/
- private $optionsToNamed = [];
+ private OptionsArrayToNamedParameters $optionsToNamed = [];
public function getRuleDefinition(): RuleDefinition
{
@@ -82,9 +79,10 @@ public function refactor(Node $node): ?Node
if (!$this->matchTypeAndMethodName($optionsToNamed, $node)) {
continue;
}
- return $this->replaceMethodCall($optionsToNamed, $node);
+ return $this->replaceMethodCall($optionsToNamed, $node);
}
+
return null;
}
diff --git a/src/Rector/Rector/MethodCall/RemoveIntermediaryMethodRector.php b/src/Rector/Rector/MethodCall/RemoveIntermediaryMethodRector.php
index 00912d0..6264dea 100644
--- a/src/Rector/Rector/MethodCall/RemoveIntermediaryMethodRector.php
+++ b/src/Rector/Rector/MethodCall/RemoveIntermediaryMethodRector.php
@@ -3,12 +3,12 @@
namespace Cake\Upgrade\Rector\Rector\MethodCall;
+use Cake\Upgrade\Rector\NodeAnalyzer\FluentChainMethodCallNodeAnalyzer;
+use Cake\Upgrade\Rector\ValueObject\RemoveIntermediaryMethod;
use PhpParser\Node;
use PhpParser\Node\Expr\MethodCall;
use PhpParser\Node\Expr\Variable;
use PhpParser\Node\Identifier;
-use Cake\Upgrade\Rector\NodeAnalyzer\FluentChainMethodCallNodeAnalyzer;
-use Cake\Upgrade\Rector\ValueObject\RemoveIntermediaryMethod;
use Rector\Contract\Rector\ConfigurableRectorInterface;
use Rector\Rector\AbstractRector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
@@ -28,7 +28,7 @@ final class RemoveIntermediaryMethodRector extends AbstractRector implements Con
public const REMOVE_INTERMEDIARY_METHOD = 'remove_intermediary_method';
/**
- * @var \Cake\Upgrade\Rector\ValueObject\RemoveIntermediaryMethod[]
+ * @var array<\Cake\Upgrade\Rector\ValueObject\RemoveIntermediaryMethod>
*/
private array $removeIntermediaryMethod = [];
@@ -86,7 +86,7 @@ public function refactor(Node $node): ?Node
}
/**
- * @param mixed[] $configuration
+ * @param array $configuration
*/
public function configure(array $configuration): void
{
diff --git a/src/Rector/Rector/MethodCall/RemoveMethodCallRector.php b/src/Rector/Rector/MethodCall/RemoveMethodCallRector.php
index 3cde361..3cf371b 100644
--- a/src/Rector/Rector/MethodCall/RemoveMethodCallRector.php
+++ b/src/Rector/Rector/MethodCall/RemoveMethodCallRector.php
@@ -1,6 +1,5 @@
*/
- private $callsWithRemoveMethodCallArgs = [];
+ private array $callsWithRemoveMethodCallArgs = [];
public function getRuleDefinition(): RuleDefinition
{
@@ -36,16 +35,18 @@ public function getRuleDefinition(): RuleDefinition
$obj = new SomeClass();
$obj->methodCall1();
$obj->methodCall2();
-CODE_SAMPLE, <<<'CODE_SAMPLE'
+CODE_SAMPLE,
+ <<<'CODE_SAMPLE'
$obj = new SomeClass();
$obj->methodCall2();
-CODE_SAMPLE, ['SomeClass', 'methodCall1']
- )
+CODE_SAMPLE,
+ ['SomeClass', 'methodCall1']
+ ),
]);
}
/**
- * @return array>
+ * @return array>
*/
public function getNodeTypes(): array
{
@@ -53,7 +54,7 @@ public function getNodeTypes(): array
}
/**
- * @param Expression $node
+ * @param \PhpParser\Node\Stmt\Expression $node
*/
public function refactor(Node $node): ?int
{
@@ -77,7 +78,7 @@ public function refactor(Node $node): ?int
}
/**
- * @param mixed[] $configuration
+ * @param array $configuration
*/
public function configure(array $configuration): void
{
diff --git a/src/Rector/Rector/MethodCall/RenameMethodCallBasedOnParameterRector.php b/src/Rector/Rector/MethodCall/RenameMethodCallBasedOnParameterRector.php
index 38b9e3b..2228c9b 100644
--- a/src/Rector/Rector/MethodCall/RenameMethodCallBasedOnParameterRector.php
+++ b/src/Rector/Rector/MethodCall/RenameMethodCallBasedOnParameterRector.php
@@ -3,10 +3,10 @@
namespace Cake\Upgrade\Rector\Rector\MethodCall;
+use Cake\Upgrade\Rector\ValueObject\RenameMethodCallBasedOnParameter;
use PhpParser\Node;
use PhpParser\Node\Expr\MethodCall;
use PhpParser\Node\Identifier;
-use Cake\Upgrade\Rector\ValueObject\RenameMethodCallBasedOnParameter;
use Rector\Contract\Rector\ConfigurableRectorInterface;
use Rector\PhpParser\Node\Value\ValueResolver;
use Rector\Rector\AbstractRector;
@@ -27,7 +27,7 @@ final class RenameMethodCallBasedOnParameterRector extends AbstractRector implem
public const CALLS_WITH_PARAM_RENAMES = 'calls_with_param_renames';
/**
- * @var \Cake\Upgrade\Rector\ValueObject\RenameMethodCallBasedOnParameter[]
+ * @var array<\Cake\Upgrade\Rector\ValueObject\RenameMethodCallBasedOnParameter>
*/
private array $callsWithParamRenames = [];
@@ -92,7 +92,7 @@ public function refactor(Node $node): ?Node
}
/**
- * @param mixed[] $configuration
+ * @param array $configuration
*/
public function configure(array $configuration): void
{
diff --git a/src/Rector/Rector/MethodCall/TableRegistryLocatorRector.php b/src/Rector/Rector/MethodCall/TableRegistryLocatorRector.php
index 999fd69..13ba523 100644
--- a/src/Rector/Rector/MethodCall/TableRegistryLocatorRector.php
+++ b/src/Rector/Rector/MethodCall/TableRegistryLocatorRector.php
@@ -1,5 +1,4 @@
get('something');
CODE_SAMPLE
- )
+ ),
]);
}
@@ -34,7 +33,7 @@ public function getNodeTypes(): array
public function refactor(Node $node): ?Node
{
- if(! $node instanceof StaticCall) {
+ if (! $node instanceof StaticCall) {
return null;
}
diff --git a/src/Rector/Rector/Namespace_/AppUsesStaticCallToUseStatementRector.php b/src/Rector/Rector/Namespace_/AppUsesStaticCallToUseStatementRector.php
index b406865..dcc71e0 100644
--- a/src/Rector/Rector/Namespace_/AppUsesStaticCallToUseStatementRector.php
+++ b/src/Rector/Rector/Namespace_/AppUsesStaticCallToUseStatementRector.php
@@ -3,23 +3,23 @@
namespace Cake\Upgrade\Rector\Rector\Namespace_;
+use Cake\Upgrade\Rector\ShortClassNameResolver;
use PhpParser\Node;
use PhpParser\Node\Expr\StaticCall;
use PhpParser\Node\Name;
+use PhpParser\Node\Stmt;
use PhpParser\Node\Stmt\Declare_;
use PhpParser\Node\Stmt\Namespace_;
use PhpParser\Node\Stmt\Use_;
use PhpParser\Node\Stmt\UseUse;
-use PHPStan\Type\ObjectType;
-use Cake\Upgrade\Rector\ShortClassNameResolver;
-use PhpParser\Node\Stmt;
use PhpParser\NodeTraverser;
+use PHPStan\Type\ObjectType;
use Rector\Contract\PhpParser\Node\StmtsAwareInterface;
+use Rector\NodeTypeResolver\Node\AttributeKey;
use Rector\PhpParser\Node\BetterNodeFinder;
use Rector\PhpParser\Node\CustomNode\FileWithoutNamespace;
use Rector\PhpParser\Node\Value\ValueResolver;
use Rector\Rector\AbstractRector;
-use Rector\NodeTypeResolver\Node\AttributeKey;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
@@ -66,7 +66,7 @@ public function getNodeTypes(): array
}
/**
- * @param StmtsAwareInterface $node
+ * @param \Rector\Contract\PhpParser\Node\StmtsAwareInterface $node
*/
public function refactor(Node $node): ?Node
{
@@ -100,8 +100,8 @@ public function refactor(Node $node): ?Node
}
/**
- * @param Stmt[] $stmts
- * @param StaticCall[] $appUsesStaticCalls
+ * @param array<\PhpParser\Node\Stmt> $stmts
+ * @param array<\PhpParser\Node\Expr\StaticCall> $appUsesStaticCalls
*/
private function removeCallLikeStmts(StmtsAwareInterface $node, array $stmts, array $appUsesStaticCalls): void
{
@@ -116,6 +116,7 @@ function (Node $subNode) use ($node, $appUsesStaticCalls, &$currentStmt) {
if ($subNode instanceof Stmt) {
$currentStmt = $subNode;
+
return null;
}
@@ -127,19 +128,21 @@ function (Node $subNode) use ($node, $appUsesStaticCalls, &$currentStmt) {
return null;
}
- /** @var Stmt $currentStmt */
+ /** @var \PhpParser\Node\Stmt $currentStmt */
unset($node->stmts[$currentStmt->getAttribute(AttributeKey::STMT_KEY)]);
+
return null;
- });
+ }
+ );
}
/**
- * @return \PhpParser\Node\Expr\StaticCall[]
+ * @return array<\PhpParser\Node\Expr\StaticCall>
*/
private function collectAppUseStaticCalls(StmtsAwareInterface $node): array
{
- /** @var \PhpParser\Node\Expr\StaticCall[] $appUsesStaticCalls */
+ /** @var array<\PhpParser\Node\Expr\StaticCall> $appUsesStaticCalls */
$appUsesStaticCalls = $this->betterNodeFinder->find($node, function (Node $node): bool {
if (! $node instanceof StaticCall) {
return false;
@@ -157,8 +160,8 @@ private function collectAppUseStaticCalls(StmtsAwareInterface $node): array
}
/**
- * @param \PhpParser\Node\Expr\StaticCall[] $staticCalls
- * @return string[]
+ * @param array<\PhpParser\Node\Expr\StaticCall> $staticCalls
+ * @return array
*/
private function resolveNamesFromStaticCalls(array $staticCalls): array
{
@@ -171,7 +174,7 @@ private function resolveNamesFromStaticCalls(array $staticCalls): array
}
/**
- * @param \PhpParser\Node\Stmt\Use_[] $fileWithoutNamespace
+ * @param array<\PhpParser\Node\Stmt\Use_> $fileWithoutNamespace
*/
private function refactorFile(FileWithoutNamespace $fileWithoutNamespace, array $uses): ?FileWithoutNamespace
{
@@ -200,7 +203,7 @@ private function createFullyQualifiedNameFromAppUsesStaticCall(StaticCall $stati
}
/**
- * @param \PhpParser\Node\Stmt\Use_[] $fileWithoutNamespace
+ * @param array<\PhpParser\Node\Stmt\Use_> $fileWithoutNamespace
*/
private function refactorFileWithDeclare(
FileWithoutNamespace $fileWithoutNamespace,
diff --git a/src/Rector/ShortClassNameResolver.php b/src/Rector/ShortClassNameResolver.php
index 5d71f0f..7e8fea8 100644
--- a/src/Rector/ShortClassNameResolver.php
+++ b/src/Rector/ShortClassNameResolver.php
@@ -6,6 +6,7 @@
use Nette\Utils\Strings;
use PHPStan\Reflection\ReflectionProvider;
use Rector\Util\StringUtils;
+use function str_contains;
/**
* @inspired https://github.com/cakephp/upgrade/blob/756410c8b7d5aff9daec3fa1fe750a3858d422ac/src/Shell/Task/AppUsesTask.php
@@ -33,7 +34,7 @@ final class ShortClassNameResolver
/**
* A map of old => new for use statements that are missing
*
- * @var string[]
+ * @var array
*/
private const RENAME_MAP = [
'App' => 'Cake\Core\App',
@@ -102,7 +103,7 @@ public function resolveShortClassName(string $pseudoNamespace, string $shortClas
// C. is not plugin nor lib custom App class?
if (
- \str_contains($pseudoNamespace, '\\') && ! StringUtils::isMatch(
+ str_contains($pseudoNamespace, '\\') && ! StringUtils::isMatch(
$pseudoNamespace,
self::PLUGIN_OR_LIB_REGEX
)
diff --git a/src/Rector/ValueObject/ArrayItemsAndFluentClass.php b/src/Rector/ValueObject/ArrayItemsAndFluentClass.php
index 649a11a..73400fe 100644
--- a/src/Rector/ValueObject/ArrayItemsAndFluentClass.php
+++ b/src/Rector/ValueObject/ArrayItemsAndFluentClass.php
@@ -6,7 +6,7 @@
final class ArrayItemsAndFluentClass
{
/**
- * @param \PhpParser\Node\Expr\ArrayItem[] $arrayItems
+ * @param array<\PhpParser\Node\Expr\ArrayItem> $arrayItems
* @param array $fluentCalls
*/
public function __construct(
@@ -16,7 +16,7 @@ public function __construct(
}
/**
- * @return \PhpParser\Node\Expr\ArrayItem[]
+ * @return array<\PhpParser\Node\Expr\ArrayItem>
*/
public function getArrayItems(): array
{
diff --git a/src/Rector/ValueObject/OptionsArrayToNamedParameters.php b/src/Rector/ValueObject/OptionsArrayToNamedParameters.php
index 82b120d..5f29afa 100644
--- a/src/Rector/ValueObject/OptionsArrayToNamedParameters.php
+++ b/src/Rector/ValueObject/OptionsArrayToNamedParameters.php
@@ -39,6 +39,7 @@ public function getRenames(): array
if (isset($this->methods['rename'])) {
return $this->methods['rename'];
}
+
return [];
}
}