diff --git a/docs/rector_rules_overview.md b/docs/rector_rules_overview.md
index a3d89ae97a9..1d1a89462f4 100644
--- a/docs/rector_rules_overview.md
+++ b/docs/rector_rules_overview.md
@@ -56,7 +56,7 @@
- [Strict](#strict) (5)
-- [Transform](#transform) (24)
+- [Transform](#transform) (25)
- [TypeDeclaration](#typedeclaration) (45)
@@ -5869,6 +5869,21 @@ Add interface by used trait
+### ArrayDimFetchToMethodCallRector
+
+Change array dim fetch to method call
+
+:wrench: **configure it!**
+
+- class: [`Rector\Transform\Rector\ArrayDimFetch\ArrayDimFetchToMethodCallRector`](../rules/Transform/Rector/ArrayDimFetch/ArrayDimFetchToMethodCallRector.php)
+
+```diff
+-$app['someService'];
++$app->make('someService');
+```
+
+
+
### AttributeKeyToClassConstFetchRector
Replace key value on specific attribute to class constant
diff --git a/rules/Transform/Rector/ArrayDimFetch/ArrayDimFetchToMethodCallRector.php b/rules/Transform/Rector/ArrayDimFetch/ArrayDimFetchToMethodCallRector.php
new file mode 100644
index 00000000000..8d730a27492
--- /dev/null
+++ b/rules/Transform/Rector/ArrayDimFetch/ArrayDimFetchToMethodCallRector.php
@@ -0,0 +1,65 @@
+make('someService');
+CODE_SAMPLE
+, [new ArrayDimFetchToMethodCall('SomeClass', 'make')])]);
+ }
+ public function getNodeTypes() : array
+ {
+ return [ArrayDimFetch::class];
+ }
+ /**
+ * @param ArrayDimFetch $node
+ */
+ public function refactor(Node $node) : ?MethodCall
+ {
+ if (!$node->var instanceof Variable) {
+ return null;
+ }
+ foreach ($this->arrayDimFetchToMethodCalls as $arrayDimFetchToMethodCall) {
+ if (!$node->dim instanceof Node) {
+ return null;
+ }
+ if (!$this->isObjectType($node->var, new ObjectType($arrayDimFetchToMethodCall->getClass()))) {
+ return null;
+ }
+ return new MethodCall($node->var, $arrayDimFetchToMethodCall->getMethod(), [new Arg($node->dim)]);
+ }
+ return null;
+ }
+ public function configure(array $configuration) : void
+ {
+ Assert::allIsInstanceOf($configuration, ArrayDimFetchToMethodCall::class);
+ $this->arrayDimFetchToMethodCalls = $configuration;
+ }
+}
diff --git a/rules/Transform/ValueObject/ArrayDimFetchToMethodCall.php b/rules/Transform/ValueObject/ArrayDimFetchToMethodCall.php
new file mode 100644
index 00000000000..9f2ebb49ae1
--- /dev/null
+++ b/rules/Transform/ValueObject/ArrayDimFetchToMethodCall.php
@@ -0,0 +1,31 @@
+class = $class;
+ $this->method = $method;
+ }
+ public function getClass() : string
+ {
+ return $this->class;
+ }
+ public function getMethod() : string
+ {
+ return $this->method;
+ }
+}
diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php
index d3321503d63..2fde9886c46 100644
--- a/src/Application/VersionResolver.php
+++ b/src/Application/VersionResolver.php
@@ -19,12 +19,12 @@ final class VersionResolver
* @api
* @var string
*/
- public const PACKAGE_VERSION = 'a844e40a3f84f120866198401f9b3640575f7c06';
+ public const PACKAGE_VERSION = 'cdde425c2224a1357d70d6784936fe47fe3ffee0';
/**
* @api
* @var string
*/
- public const RELEASE_DATE = '2024-03-15 14:13:28';
+ public const RELEASE_DATE = '2024-03-15 20:22:53';
/**
* @var int
*/
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
index 0166680ffc2..f4cd3bc643f 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -2286,6 +2286,7 @@ return array(
'Rector\\Transform\\NodeAnalyzer\\FuncCallStaticCallToMethodCallAnalyzer' => $baseDir . '/rules/Transform/NodeAnalyzer/FuncCallStaticCallToMethodCallAnalyzer.php',
'Rector\\Transform\\NodeFactory\\PropertyFetchFactory' => $baseDir . '/rules/Transform/NodeFactory/PropertyFetchFactory.php',
'Rector\\Transform\\NodeTypeAnalyzer\\TypeProvidingExprFromClassResolver' => $baseDir . '/rules/Transform/NodeTypeAnalyzer/TypeProvidingExprFromClassResolver.php',
+ 'Rector\\Transform\\Rector\\ArrayDimFetch\\ArrayDimFetchToMethodCallRector' => $baseDir . '/rules/Transform/Rector/ArrayDimFetch/ArrayDimFetchToMethodCallRector.php',
'Rector\\Transform\\Rector\\Assign\\PropertyAssignToMethodCallRector' => $baseDir . '/rules/Transform/Rector/Assign/PropertyAssignToMethodCallRector.php',
'Rector\\Transform\\Rector\\Assign\\PropertyFetchToMethodCallRector' => $baseDir . '/rules/Transform/Rector/Assign/PropertyFetchToMethodCallRector.php',
'Rector\\Transform\\Rector\\Attribute\\AttributeKeyToClassConstFetchRector' => $baseDir . '/rules/Transform/Rector/Attribute/AttributeKeyToClassConstFetchRector.php',
@@ -2310,6 +2311,7 @@ return array(
'Rector\\Transform\\Rector\\StaticCall\\StaticCallToMethodCallRector' => $baseDir . '/rules/Transform/Rector/StaticCall/StaticCallToMethodCallRector.php',
'Rector\\Transform\\Rector\\StaticCall\\StaticCallToNewRector' => $baseDir . '/rules/Transform/Rector/StaticCall/StaticCallToNewRector.php',
'Rector\\Transform\\Rector\\String_\\StringToClassConstantRector' => $baseDir . '/rules/Transform/Rector/String_/StringToClassConstantRector.php',
+ 'Rector\\Transform\\ValueObject\\ArrayDimFetchToMethodCall' => $baseDir . '/rules/Transform/ValueObject/ArrayDimFetchToMethodCall.php',
'Rector\\Transform\\ValueObject\\AttributeKeyToClassConstFetch' => $baseDir . '/rules/Transform/ValueObject/AttributeKeyToClassConstFetch.php',
'Rector\\Transform\\ValueObject\\ClassMethodReference' => $baseDir . '/rules/Transform/ValueObject/ClassMethodReference.php',
'Rector\\Transform\\ValueObject\\ConstFetchToClassConstFetch' => $baseDir . '/rules/Transform/ValueObject/ConstFetchToClassConstFetch.php',
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
index 04b3da07ead..064b4a4429c 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -2505,6 +2505,7 @@ class ComposerStaticInit1738583af5734d6ba4a4af91c9f317d8
'Rector\\Transform\\NodeAnalyzer\\FuncCallStaticCallToMethodCallAnalyzer' => __DIR__ . '/../..' . '/rules/Transform/NodeAnalyzer/FuncCallStaticCallToMethodCallAnalyzer.php',
'Rector\\Transform\\NodeFactory\\PropertyFetchFactory' => __DIR__ . '/../..' . '/rules/Transform/NodeFactory/PropertyFetchFactory.php',
'Rector\\Transform\\NodeTypeAnalyzer\\TypeProvidingExprFromClassResolver' => __DIR__ . '/../..' . '/rules/Transform/NodeTypeAnalyzer/TypeProvidingExprFromClassResolver.php',
+ 'Rector\\Transform\\Rector\\ArrayDimFetch\\ArrayDimFetchToMethodCallRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/ArrayDimFetch/ArrayDimFetchToMethodCallRector.php',
'Rector\\Transform\\Rector\\Assign\\PropertyAssignToMethodCallRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/Assign/PropertyAssignToMethodCallRector.php',
'Rector\\Transform\\Rector\\Assign\\PropertyFetchToMethodCallRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/Assign/PropertyFetchToMethodCallRector.php',
'Rector\\Transform\\Rector\\Attribute\\AttributeKeyToClassConstFetchRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/Attribute/AttributeKeyToClassConstFetchRector.php',
@@ -2529,6 +2530,7 @@ class ComposerStaticInit1738583af5734d6ba4a4af91c9f317d8
'Rector\\Transform\\Rector\\StaticCall\\StaticCallToMethodCallRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/StaticCall/StaticCallToMethodCallRector.php',
'Rector\\Transform\\Rector\\StaticCall\\StaticCallToNewRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/StaticCall/StaticCallToNewRector.php',
'Rector\\Transform\\Rector\\String_\\StringToClassConstantRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/String_/StringToClassConstantRector.php',
+ 'Rector\\Transform\\ValueObject\\ArrayDimFetchToMethodCall' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/ArrayDimFetchToMethodCall.php',
'Rector\\Transform\\ValueObject\\AttributeKeyToClassConstFetch' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/AttributeKeyToClassConstFetch.php',
'Rector\\Transform\\ValueObject\\ClassMethodReference' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/ClassMethodReference.php',
'Rector\\Transform\\ValueObject\\ConstFetchToClassConstFetch' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/ConstFetchToClassConstFetch.php',