1616final class DeprecationProvider
1717{
1818
19- /** @var array<PropertyDeprecationExtension> $propertyDeprecationExtensions */
20- private array $ propertyDeprecationExtensions ;
19+ /** @var ? array<PropertyDeprecationExtension> $propertyDeprecationExtensions */
20+ private ? array $ propertyDeprecationExtensions = null ;
2121
22- /** @var array<MethodDeprecationExtension> $methodDeprecationExtensions */
23- private array $ methodDeprecationExtensions ;
22+ /** @var ? array<MethodDeprecationExtension> $methodDeprecationExtensions */
23+ private ? array $ methodDeprecationExtensions = null ;
2424
25- /** @var array<ClassConstantDeprecationExtension> $classConstantDeprecationExtensions */
26- private array $ classConstantDeprecationExtensions ;
25+ /** @var ? array<ClassConstantDeprecationExtension> $classConstantDeprecationExtensions */
26+ private ? array $ classConstantDeprecationExtensions = null ;
2727
28- /** @var array<ClassDeprecationExtension> $classDeprecationExtensions */
29- private array $ classDeprecationExtensions ;
28+ /** @var ? array<ClassDeprecationExtension> $classDeprecationExtensions */
29+ private ? array $ classDeprecationExtensions = null ;
3030
31- /** @var array<FunctionDeprecationExtension> $functionDeprecationExtensions */
32- private array $ functionDeprecationExtensions ;
31+ /** @var ? array<FunctionDeprecationExtension> $functionDeprecationExtensions */
32+ private ? array $ functionDeprecationExtensions = null ;
3333
34- /** @var array<ConstantDeprecationExtension> $constantDeprecationExtensions */
35- private array $ constantDeprecationExtensions ;
34+ /** @var ? array<ConstantDeprecationExtension> $constantDeprecationExtensions */
35+ private ? array $ constantDeprecationExtensions = null ;
3636
37- /** @var array<EnumCaseDeprecationExtension> $enumCaseDeprecationExtensions */
38- private array $ enumCaseDeprecationExtensions ;
37+ /** @var ? array<EnumCaseDeprecationExtension> $enumCaseDeprecationExtensions */
38+ private ? array $ enumCaseDeprecationExtensions = null ;
3939
4040 public function __construct (
41- Container $ container ,
41+ private Container $ container ,
4242 )
4343 {
44- $ this ->propertyDeprecationExtensions = $ container ->getServicesByTag ('phpstan.propertyDeprecationExtension ' );
45- $ this ->methodDeprecationExtensions = $ container ->getServicesByTag ('phpstan.methodDeprecationExtension ' );
46- $ this ->classConstantDeprecationExtensions = $ container ->getServicesByTag ('phpstan.classConstantDeprecationExtension ' );
47- $ this ->classDeprecationExtensions = $ container ->getServicesByTag ('phpstan.classDeprecationExtension ' );
48- $ this ->functionDeprecationExtensions = $ container ->getServicesByTag ('phpstan.functionDeprecationExtension ' );
49- $ this ->constantDeprecationExtensions = $ container ->getServicesByTag ('phpstan.constantDeprecationExtension ' );
50- $ this ->enumCaseDeprecationExtensions = $ container ->getServicesByTag ('phpstan.enumCaseDeprecationExtension ' );
5144 }
5245
5346 public function getPropertyDeprecation (ReflectionProperty $ reflectionProperty ): ?Deprecation
5447 {
48+ $ this ->propertyDeprecationExtensions ??= $ this ->container ->getServicesByTag ('phpstan.propertyDeprecationExtension ' );
49+
5550 foreach ($ this ->propertyDeprecationExtensions as $ extension ) {
5651 $ deprecation = $ extension ->getPropertyDeprecation ($ reflectionProperty );
5752 if ($ deprecation !== null ) {
@@ -64,6 +59,8 @@ public function getPropertyDeprecation(ReflectionProperty $reflectionProperty):
6459
6560 public function getMethodDeprecation (ReflectionMethod $ methodReflection ): ?Deprecation
6661 {
62+ $ this ->methodDeprecationExtensions ??= $ this ->container ->getServicesByTag ('phpstan.methodDeprecationExtension ' );
63+
6764 foreach ($ this ->methodDeprecationExtensions as $ extension ) {
6865 $ deprecation = $ extension ->getMethodDeprecation ($ methodReflection );
6966 if ($ deprecation !== null ) {
@@ -76,6 +73,8 @@ public function getMethodDeprecation(ReflectionMethod $methodReflection): ?Depre
7673
7774 public function getClassConstantDeprecation (ReflectionClassConstant $ reflectionConstant ): ?Deprecation
7875 {
76+ $ this ->classConstantDeprecationExtensions ??= $ this ->container ->getServicesByTag ('phpstan.classConstantDeprecationExtension ' );
77+
7978 foreach ($ this ->classConstantDeprecationExtensions as $ extension ) {
8079 $ deprecation = $ extension ->getClassConstantDeprecation ($ reflectionConstant );
8180 if ($ deprecation !== null ) {
@@ -88,6 +87,8 @@ public function getClassConstantDeprecation(ReflectionClassConstant $reflectionC
8887
8988 public function getClassDeprecation (ReflectionClass |ReflectionEnum $ reflection ): ?Deprecation
9089 {
90+ $ this ->classDeprecationExtensions ??= $ this ->container ->getServicesByTag ('phpstan.classDeprecationExtension ' );
91+
9192 foreach ($ this ->classDeprecationExtensions as $ extension ) {
9293 $ deprecation = $ extension ->getClassDeprecation ($ reflection );
9394 if ($ deprecation !== null ) {
@@ -100,6 +101,8 @@ public function getClassDeprecation(ReflectionClass|ReflectionEnum $reflection):
100101
101102 public function getFunctionDeprecation (ReflectionFunction $ reflectionFunction ): ?Deprecation
102103 {
104+ $ this ->functionDeprecationExtensions ??= $ this ->container ->getServicesByTag ('phpstan.functionDeprecationExtension ' );
105+
103106 foreach ($ this ->functionDeprecationExtensions as $ extension ) {
104107 $ deprecation = $ extension ->getFunctionDeprecation ($ reflectionFunction );
105108 if ($ deprecation !== null ) {
@@ -112,6 +115,8 @@ public function getFunctionDeprecation(ReflectionFunction $reflectionFunction):
112115
113116 public function getConstantDeprecation (ReflectionConstant $ constantReflection ): ?Deprecation
114117 {
118+ $ this ->constantDeprecationExtensions ??= $ this ->container ->getServicesByTag ('phpstan.constantDeprecationExtension ' );
119+
115120 foreach ($ this ->constantDeprecationExtensions as $ extension ) {
116121 $ deprecation = $ extension ->getConstantDeprecation ($ constantReflection );
117122 if ($ deprecation !== null ) {
@@ -124,6 +129,8 @@ public function getConstantDeprecation(ReflectionConstant $constantReflection):
124129
125130 public function getEnumCaseDeprecation (ReflectionEnumUnitCase |ReflectionEnumBackedCase $ enumCaseReflection ): ?Deprecation
126131 {
132+ $ this ->enumCaseDeprecationExtensions ??= $ this ->container ->getServicesByTag ('phpstan.enumCaseDeprecationExtension ' );
133+
127134 foreach ($ this ->enumCaseDeprecationExtensions as $ extension ) {
128135 $ deprecation = $ extension ->getEnumCaseDeprecation ($ enumCaseReflection );
129136 if ($ deprecation !== null ) {
0 commit comments