Skip to content

Commit 2241a12

Browse files
authored
ClassNameCheck: Retrieve extensions just once (#5027)
1 parent f48d71a commit 2241a12

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/Rules/Classes/InstantiationRule.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@
3838
final class InstantiationRule implements Rule
3939
{
4040

41+
/** @var RestrictedMethodUsageExtension[] $extensions */
42+
private ?array $extensions = null;
43+
4144
public function __construct(
4245
private Container $container,
4346
private ReflectionProvider $reflectionProvider,
@@ -207,10 +210,10 @@ private function checkClassName(string $class, bool $isName, Node $node, Scope $
207210
->build();
208211
}
209212

210-
/** @var RestrictedMethodUsageExtension[] $restrictedUsageExtensions */
211-
$restrictedUsageExtensions = $this->container->getServicesByTag(RestrictedMethodUsageExtension::METHOD_EXTENSION_TAG);
213+
/** @var RestrictedMethodUsageExtension[] $extensions */
214+
$extensions = $this->extensions ??= $this->container->getServicesByTag(RestrictedMethodUsageExtension::METHOD_EXTENSION_TAG);
212215

213-
foreach ($restrictedUsageExtensions as $extension) {
216+
foreach ($extensions as $extension) {
214217
$restrictedUsage = $extension->isRestrictedMethodUsage($constructorReflection, $scope);
215218
if ($restrictedUsage === null) {
216219
continue;

0 commit comments

Comments
 (0)