From b0353fe3df011c57b8570224777ed7fdbe6e1c53 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 22 Feb 2026 20:29:21 +0100 Subject: [PATCH 1/3] ClassNameCheck: Retrieve extensions just once --- src/Rules/Classes/InstantiationRule.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Rules/Classes/InstantiationRule.php b/src/Rules/Classes/InstantiationRule.php index 6f8b322975..ec6a7b9a5b 100644 --- a/src/Rules/Classes/InstantiationRule.php +++ b/src/Rules/Classes/InstantiationRule.php @@ -37,6 +37,8 @@ #[RegisteredRule(level: 0)] final class InstantiationRule implements Rule { + /** @var RestrictedMethodUsageExtension[] $extensions */ + private ?array $extensions = null; public function __construct( private Container $container, @@ -208,9 +210,9 @@ private function checkClassName(string $class, bool $isName, Node $node, Scope $ } /** @var RestrictedMethodUsageExtension[] $restrictedUsageExtensions */ - $restrictedUsageExtensions = $this->container->getServicesByTag(RestrictedMethodUsageExtension::METHOD_EXTENSION_TAG); + $extensions = $this->extensions ??= $this->container->getServicesByTag(RestrictedMethodUsageExtension::METHOD_EXTENSION_TAG); - foreach ($restrictedUsageExtensions as $extension) { + foreach ($extensions as $extension) { $restrictedUsage = $extension->isRestrictedMethodUsage($constructorReflection, $scope); if ($restrictedUsage === null) { continue; From ce50db7ef914c06e7baf655e01a36b975fe6c537 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 22 Feb 2026 20:29:51 +0100 Subject: [PATCH 2/3] Update InstantiationRule.php --- src/Rules/Classes/InstantiationRule.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Rules/Classes/InstantiationRule.php b/src/Rules/Classes/InstantiationRule.php index ec6a7b9a5b..02611dc7ba 100644 --- a/src/Rules/Classes/InstantiationRule.php +++ b/src/Rules/Classes/InstantiationRule.php @@ -37,6 +37,7 @@ #[RegisteredRule(level: 0)] final class InstantiationRule implements Rule { + /** @var RestrictedMethodUsageExtension[] $extensions */ private ?array $extensions = null; From ae565f0d661e4dcefed51fa168551125b7ce181f Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 22 Feb 2026 20:30:46 +0100 Subject: [PATCH 3/3] Update InstantiationRule.php --- src/Rules/Classes/InstantiationRule.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Rules/Classes/InstantiationRule.php b/src/Rules/Classes/InstantiationRule.php index 02611dc7ba..506176a377 100644 --- a/src/Rules/Classes/InstantiationRule.php +++ b/src/Rules/Classes/InstantiationRule.php @@ -210,7 +210,7 @@ private function checkClassName(string $class, bool $isName, Node $node, Scope $ ->build(); } - /** @var RestrictedMethodUsageExtension[] $restrictedUsageExtensions */ + /** @var RestrictedMethodUsageExtension[] $extensions */ $extensions = $this->extensions ??= $this->container->getServicesByTag(RestrictedMethodUsageExtension::METHOD_EXTENSION_TAG); foreach ($extensions as $extension) {