File tree 4 files changed +71
-82
lines changed
4 files changed +71
-82
lines changed Original file line number Diff line number Diff line change @@ -16,6 +16,11 @@ services:
16
16
-
17
17
class : PHPStan\Rules\Deprecations\CallWithDeprecatedIniOptionRule
18
18
19
+ -
20
+ class : PHPStan\Rules\Deprecations\RestrictedDeprecatedFunctionUsageExtension
21
+ tags :
22
+ - phpstan.restrictedFunctionUsageExtension
23
+
19
24
-
20
25
class : PHPStan\Rules\Deprecations\RestrictedDeprecatedMethodUsageExtension
21
26
tags :
@@ -31,7 +36,6 @@ services:
31
36
rules :
32
37
- PHPStan\Rules\Deprecations\AccessDeprecatedPropertyRule
33
38
- PHPStan\Rules\Deprecations\AccessDeprecatedStaticPropertyRule
34
- - PHPStan\Rules\Deprecations\CallToDeprecatedFunctionRule
35
39
- PHPStan\Rules\Deprecations\FetchingClassConstOfDeprecatedClassRule
36
40
- PHPStan\Rules\Deprecations\FetchingDeprecatedConstRule
37
41
- PHPStan\Rules\Deprecations\UsageOfDeprecatedCastRule
Load Diff This file was deleted.
Original file line number Diff line number Diff line change
1
+ <?php declare (strict_types = 1 );
2
+
3
+ namespace PHPStan \Rules \Deprecations ;
4
+
5
+ use PHPStan \Analyser \Scope ;
6
+ use PHPStan \Reflection \FunctionReflection ;
7
+ use PHPStan \Rules \RestrictedUsage \RestrictedFunctionUsageExtension ;
8
+ use PHPStan \Rules \RestrictedUsage \RestrictedUsage ;
9
+ use function sprintf ;
10
+
11
+ class RestrictedDeprecatedFunctionUsageExtension implements RestrictedFunctionUsageExtension
12
+ {
13
+
14
+ private DeprecatedScopeHelper $ deprecatedScopeHelper ;
15
+
16
+ public function __construct (DeprecatedScopeHelper $ deprecatedScopeHelper )
17
+ {
18
+ $ this ->deprecatedScopeHelper = $ deprecatedScopeHelper ;
19
+ }
20
+
21
+ public function isRestrictedFunctionUsage (
22
+ FunctionReflection $ functionReflection ,
23
+ Scope $ scope
24
+ ): ?RestrictedUsage
25
+ {
26
+ if ($ this ->deprecatedScopeHelper ->isScopeDeprecated ($ scope )) {
27
+ return null ;
28
+ }
29
+
30
+ if (!$ functionReflection ->isDeprecated ()->yes ()) {
31
+ return null ;
32
+ }
33
+
34
+ $ description = $ functionReflection ->getDeprecatedDescription ();
35
+ if ($ description === null ) {
36
+ return RestrictedUsage::create (
37
+ sprintf (
38
+ 'Call to deprecated function %s(). ' ,
39
+ $ functionReflection ->getName (),
40
+ ),
41
+ 'function.deprecated ' ,
42
+ );
43
+ }
44
+
45
+ return RestrictedUsage::create (
46
+ sprintf (
47
+ "Call to deprecated function %s(): \n%s " ,
48
+ $ functionReflection ->getName (),
49
+ $ description ,
50
+ ),
51
+ 'function.deprecated ' ,
52
+ );
53
+ }
54
+
55
+ }
Original file line number Diff line number Diff line change 2
2
3
3
namespace PHPStan \Rules \Deprecations ;
4
4
5
+ use PHPStan \Rules \RestrictedUsage \RestrictedFunctionUsageRule ;
5
6
use PHPStan \Rules \Rule ;
6
7
use PHPStan \Testing \RuleTestCase ;
7
8
8
9
/**
9
- * @extends RuleTestCase<CallToDeprecatedFunctionRule >
10
+ * @extends RuleTestCase<RestrictedFunctionUsageRule >
10
11
*/
11
12
class CallToDeprecatedFunctionRuleTest extends RuleTestCase
12
13
{
13
14
14
15
protected function getRule (): Rule
15
16
{
16
- return new CallToDeprecatedFunctionRule (
17
- $ this ->createReflectionProvider (),
18
- new DeprecatedScopeHelper ([new DefaultDeprecatedScopeResolver ()]),
19
- );
17
+ return self ::getContainer ()->getByType (RestrictedFunctionUsageRule::class);
20
18
}
21
19
22
20
public function testDeprecatedFunctionCall (): void
@@ -41,4 +39,12 @@ public function testDeprecatedFunctionCall(): void
41
39
);
42
40
}
43
41
42
+ public static function getAdditionalConfigFiles (): array
43
+ {
44
+ return [
45
+ __DIR__ . '/../../../rules.neon ' ,
46
+ ...parent ::getAdditionalConfigFiles (),
47
+ ];
48
+ }
49
+
44
50
}
You can’t perform that action at this time.
0 commit comments