Skip to content

Commit f179382

Browse files
authored
ClassNameCheck: Retrieve extensions just once (#4926)
1 parent 88b41d4 commit f179382

11 files changed

+44
-22
lines changed

src/Rules/ClassNameCheck.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
final class ClassNameCheck
1313
{
1414

15+
/** @var RestrictedClassNameUsageExtension[] $extensions */
16+
private ?array $extensions = null;
17+
1518
public function __construct(
1619
private ClassCaseSensitivityCheck $classCaseSensitivityCheck,
1720
private ClassForbiddenNameCheck $classForbiddenNameCheck,
@@ -47,8 +50,7 @@ public function checkClassNames(
4750
return $errors;
4851
}
4952

50-
/** @var RestrictedClassNameUsageExtension[] $extensions */
51-
$extensions = $this->container->getServicesByTag(RestrictedClassNameUsageExtension::CLASS_NAME_EXTENSION_TAG);
53+
$extensions = $this->extensions ??= $this->container->getServicesByTag(RestrictedClassNameUsageExtension::CLASS_NAME_EXTENSION_TAG);
5254
if ($extensions === []) {
5355
return $errors;
5456
}

src/Rules/RestrictedUsage/RestrictedClassConstantUsageRule.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
final class RestrictedClassConstantUsageRule implements Rule
2323
{
2424

25+
/** @var RestrictedClassConstantUsageExtension[] $extensions */
26+
private ?array $extensions = null;
27+
2528
public function __construct(
2629
private Container $container,
2730
private ReflectionProvider $reflectionProvider,
@@ -44,8 +47,7 @@ public function processNode(Node $node, Scope $scope): array
4447
return [];
4548
}
4649

47-
/** @var RestrictedClassConstantUsageExtension[] $extensions */
48-
$extensions = $this->container->getServicesByTag(RestrictedClassConstantUsageExtension::CLASS_CONSTANT_EXTENSION_TAG);
50+
$extensions = $this->extensions ??= $this->container->getServicesByTag(RestrictedClassConstantUsageExtension::CLASS_CONSTANT_EXTENSION_TAG);
4951
if ($extensions === []) {
5052
return [];
5153
}

src/Rules/RestrictedUsage/RestrictedFunctionCallableUsageRule.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
final class RestrictedFunctionCallableUsageRule implements Rule
2020
{
2121

22+
/** @var RestrictedFunctionUsageExtension[] $extensions */
23+
private ?array $extensions = null;
24+
2225
public function __construct(
2326
private Container $container,
2427
private ReflectionProvider $reflectionProvider,
@@ -46,8 +49,7 @@ public function processNode(Node $node, Scope $scope): array
4649

4750
$functionReflection = $this->reflectionProvider->getFunction($node->getName(), $scope);
4851

49-
/** @var RestrictedFunctionUsageExtension[] $extensions */
50-
$extensions = $this->container->getServicesByTag(RestrictedFunctionUsageExtension::FUNCTION_EXTENSION_TAG);
52+
$extensions = $this->extensions ??= $this->container->getServicesByTag(RestrictedFunctionUsageExtension::FUNCTION_EXTENSION_TAG);
5153
$errors = [];
5254

5355
foreach ($extensions as $extension) {

src/Rules/RestrictedUsage/RestrictedFunctionUsageRule.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
final class RestrictedFunctionUsageRule implements Rule
1919
{
2020

21+
/** @var RestrictedFunctionUsageExtension[] $extensions */
22+
private ?array $extensions = null;
23+
2124
public function __construct(
2225
private Container $container,
2326
private ReflectionProvider $reflectionProvider,
@@ -45,8 +48,7 @@ public function processNode(Node $node, Scope $scope): array
4548

4649
$functionReflection = $this->reflectionProvider->getFunction($node->name, $scope);
4750

48-
/** @var RestrictedFunctionUsageExtension[] $extensions */
49-
$extensions = $this->container->getServicesByTag(RestrictedFunctionUsageExtension::FUNCTION_EXTENSION_TAG);
51+
$extensions = $this->extensions ??= $this->container->getServicesByTag(RestrictedFunctionUsageExtension::FUNCTION_EXTENSION_TAG);
5052
$errors = [];
5153

5254
foreach ($extensions as $extension) {

src/Rules/RestrictedUsage/RestrictedMethodCallableUsageRule.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
final class RestrictedMethodCallableUsageRule implements Rule
2020
{
2121

22+
/** @var RestrictedMethodUsageExtension[] $extensions */
23+
private ?array $extensions = null;
24+
2225
public function __construct(
2326
private Container $container,
2427
private ReflectionProvider $reflectionProvider,
@@ -40,8 +43,7 @@ public function processNode(Node $node, Scope $scope): array
4043
return [];
4144
}
4245

43-
/** @var RestrictedMethodUsageExtension[] $extensions */
44-
$extensions = $this->container->getServicesByTag(RestrictedMethodUsageExtension::METHOD_EXTENSION_TAG);
46+
$extensions = $this->extensions ??= $this->container->getServicesByTag(RestrictedMethodUsageExtension::METHOD_EXTENSION_TAG);
4547
if ($extensions === []) {
4648
return [];
4749
}

src/Rules/RestrictedUsage/RestrictedMethodUsageRule.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
final class RestrictedMethodUsageRule implements Rule
2020
{
2121

22+
/** @var RestrictedMethodUsageExtension[] $extensions */
23+
private ?array $extensions = null;
24+
2225
public function __construct(
2326
private Container $container,
2427
private ReflectionProvider $reflectionProvider,
@@ -40,8 +43,7 @@ public function processNode(Node $node, Scope $scope): array
4043
return [];
4144
}
4245

43-
/** @var RestrictedMethodUsageExtension[] $extensions */
44-
$extensions = $this->container->getServicesByTag(RestrictedMethodUsageExtension::METHOD_EXTENSION_TAG);
46+
$extensions = $this->extensions ??= $this->container->getServicesByTag(RestrictedMethodUsageExtension::METHOD_EXTENSION_TAG);
4547
if ($extensions === []) {
4648
return [];
4749
}

src/Rules/RestrictedUsage/RestrictedPropertyUsageRule.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
final class RestrictedPropertyUsageRule implements Rule
1919
{
2020

21+
/** @var RestrictedPropertyUsageExtension[] $extensions */
22+
private ?array $extensions = null;
23+
2124
public function __construct(
2225
private Container $container,
2326
private ReflectionProvider $reflectionProvider,
@@ -39,8 +42,7 @@ public function processNode(Node $node, Scope $scope): array
3942
return [];
4043
}
4144

42-
/** @var RestrictedPropertyUsageExtension[] $extensions */
43-
$extensions = $this->container->getServicesByTag(RestrictedPropertyUsageExtension::PROPERTY_EXTENSION_TAG);
45+
$extensions = $this->extensions ??= $this->container->getServicesByTag(RestrictedPropertyUsageExtension::PROPERTY_EXTENSION_TAG);
4446
if ($extensions === []) {
4547
return [];
4648
}

src/Rules/RestrictedUsage/RestrictedStaticMethodCallableUsageRule.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323
final class RestrictedStaticMethodCallableUsageRule implements Rule
2424
{
2525

26+
/** @var RestrictedMethodUsageExtension[] $extensions */
27+
private ?array $extensions = null;
28+
2629
public function __construct(
2730
private Container $container,
2831
private ReflectionProvider $reflectionProvider,
@@ -45,8 +48,7 @@ public function processNode(Node $node, Scope $scope): array
4548
return [];
4649
}
4750

48-
/** @var RestrictedMethodUsageExtension[] $extensions */
49-
$extensions = $this->container->getServicesByTag(RestrictedMethodUsageExtension::METHOD_EXTENSION_TAG);
51+
$extensions = $this->extensions ??= $this->container->getServicesByTag(RestrictedMethodUsageExtension::METHOD_EXTENSION_TAG);
5052
if ($extensions === []) {
5153
return [];
5254
}

src/Rules/RestrictedUsage/RestrictedStaticMethodUsageRule.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
final class RestrictedStaticMethodUsageRule implements Rule
2323
{
2424

25+
/** @var RestrictedMethodUsageExtension[] $extensions */
26+
private ?array $extensions = null;
27+
2528
public function __construct(
2629
private Container $container,
2730
private ReflectionProvider $reflectionProvider,
@@ -44,8 +47,7 @@ public function processNode(Node $node, Scope $scope): array
4447
return [];
4548
}
4649

47-
/** @var RestrictedMethodUsageExtension[] $extensions */
48-
$extensions = $this->container->getServicesByTag(RestrictedMethodUsageExtension::METHOD_EXTENSION_TAG);
50+
$extensions = $this->extensions ??= $this->container->getServicesByTag(RestrictedMethodUsageExtension::METHOD_EXTENSION_TAG);
4951
if ($extensions === []) {
5052
return [];
5153
}

src/Rules/RestrictedUsage/RestrictedStaticPropertyUsageRule.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
final class RestrictedStaticPropertyUsageRule implements Rule
2323
{
2424

25+
/** @var RestrictedPropertyUsageExtension[] $extensions */
26+
private ?array $extensions = null;
27+
2528
public function __construct(
2629
private Container $container,
2730
private ReflectionProvider $reflectionProvider,
@@ -44,8 +47,7 @@ public function processNode(Node $node, Scope $scope): array
4447
return [];
4548
}
4649

47-
/** @var RestrictedPropertyUsageExtension[] $extensions */
48-
$extensions = $this->container->getServicesByTag(RestrictedPropertyUsageExtension::PROPERTY_EXTENSION_TAG);
50+
$extensions = $this->extensions ??= $this->container->getServicesByTag(RestrictedPropertyUsageExtension::PROPERTY_EXTENSION_TAG);
4951
if ($extensions === []) {
5052
return [];
5153
}

0 commit comments

Comments
 (0)