-
Notifications
You must be signed in to change notification settings - Fork 4
/
phpstan.neon
175 lines (159 loc) · 12.8 KB
/
phpstan.neon
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
includes:
- vendor/phpstan/phpstan-strict-rules/rules.neon
- vendor/spaze/phpstan-disallowed-calls/extension.neon
- vendor/phpstan/phpstan/conf/bleedingEdge.neon
parameters:
checkUninitializedProperties: true
strictRules:
# turn off strict rules
allRules: false
uselessCast: true
requireParentConstructorCall: true
overwriteVariablesWithLoop: true
closureUsesThis: true
numericOperandsInArithmeticOperators: true
strictCalls: true
# turn on some strict rules parameters
polluteScopeWithLoopInitialAssignments: true
polluteScopeWithAlwaysIterableForeach: true
checkAlwaysTrueCheckTypeFunctionCall: false
checkAlwaysTrueInstanceof: false
checkAlwaysTrueStrictComparison: false
checkAlwaysTrueLooseComparison: false
checkExplicitMixedMissingReturn: false
reportMaybesInMethodSignatures: false
reportStaticMethodSignatures: false
reportMaybesInPropertyPhpDocTypes: false
disallowedFunctionCalls:
-
function: 'print_r()'
message: 'use some logger instead'
allowParamsAnywhere:
2: true
-
function: 'var_dump()'
message: 'use some logger instead'
-
function: 'var_export()'
message: 'use some logger instead'
allowParamsAnywhere:
2: true
ignoreErrors:
-
messages:
- '#^Calling PHPStan\\DependencyInjection\\DerivativeContainerFactory\:\:create\(\) is not covered by backward compatibility promise\. The method might change in a minor PHPStan version\.$#'
- '#^Accessing PHPStan\\Analyser\\FileAnalyser::class is not covered by backward compatibility promise\. The class might change in a minor PHPStan version\.$#'
path: src/Analyser/FileAnalyserFactory.php
-
message: '#^Calling PHPStan\\File\\FileExcluder::isExcludedFromAnalysing\(\) is not covered by backward compatibility promise\. The method might change in a minor PHPStan version\.$#'
path: src/Analyser/AnalysedTemplatesRegistry.php
-
messages:
- '#^Calling PHPStan\\Analyser\\FileAnalyser\:\:analyseFile\(\) is not covered by backward compatibility promise\. The method might change in a minor PHPStan version\.$#'
- '#^Calling PHPStan\\Analyser\\FileAnalyserResult\:\:getErrors\(\) is not covered by backward compatibility promise\. The method might change in a minor PHPStan version\.$#'
- '#^Creating new PHPStan\\Analyser\\Error is not covered by backward compatibility promise\. The class might change in a minor PHPStan version\.$#'
- '#^Creating new PHPStan\\Collectors\\Registry is not covered by backward compatibility promise\. The class might change in a minor PHPStan version\.$#'
path: src/Rule/LatteTemplatesRule.php
-
messages:
- '#^Calling PHPStan\\File\\SimpleRelativePathHelper\:\:getRelativePath\(\) is not covered by backward compatibility promise\. The method might change in a minor PHPStan version\.$#'
- '#^Accessing PHPStan\\Command\\AnalyseCommand::DEFAULT_LEVEL is not covered by backward compatibility promise\. The class might change in a minor PHPStan version\.$#'
- '#^Accessing PHPStan\\Command\\AnalyseCommand::OPTION_LEVEL is not covered by backward compatibility promise\. The class might change in a minor PHPStan version\.$#'
path: src/Error/TableErrorFormatter.php
-
message: '#^Creating new PHPStan\\Reflection\\Native\\NativeParameterReflection is not covered by backward compatibility promise\. The class might change in a minor PHPStan version\.$#'
path: src/Compiler/Compiler/AbstractCompiler.php
-
message: '#^Parameter \#1 \$value of static method PhpParser\\BuilderHelpers\:\:normalizeValue\(\) expects array\|bool\|float\|int\|PhpParser\\Node\\Expr\|string\|null, mixed given\.$#'
path: src/LinkProcessor/LinkParamsProcessor.php
-
messages:
- '#^Method Efabrica\\PHPStanLatte\\Analyser\\LatteContextAnalyser::__construct\(\) has parameter \$collectors with generic class Efabrica\\PHPStanLatte\\LatteContext\\Collector\\AbstractLatteContextCollector but does not specify its types: T#'
- '#^Method Efabrica\\PHPStanLatte\\Analyser\\LatteContextAnalyser::withCollectors\(\) has parameter \$collectors with generic class Efabrica\\PHPStanLatte\\LatteContext\\Collector\\AbstractLatteContextCollector but does not specify its types: T#'
path: src/Analyser/LatteContextAnalyser.php
-
messages:
- '#^Property Efabrica\\PHPStanLatte\\Analyser\\LatteContextCollectorRegistry::\$collectors with generic class Efabrica\\PHPStanLatte\\LatteContext\\Collector\\AbstractLatteContextCollector does not specify its types: T#'
- '#^Property Efabrica\\PHPStanLatte\\Analyser\\LatteContextCollectorRegistry::\$cache with generic class Efabrica\\PHPStanLatte\\LatteContext\\Collector\\AbstractLatteContextCollector does not specify its types: T#'
- '#^Method Efabrica\\PHPStanLatte\\Analyser\\LatteContextCollectorRegistry::__construct\(\) has parameter \$collectors with generic class Efabrica\\PHPStanLatte\\LatteContext\\Collector\\AbstractLatteContextCollector but does not specify its types: T#'
- '#^Method Efabrica\\PHPStanLatte\\Analyser\\LatteContextCollectorRegistry::getCollectorsForNode\(\) return type with generic class Efabrica\\PHPStanLatte\\LatteContext\\Collector\\AbstractLatteContextCollector does not specify its types: T#'
path: src/Analyser/LatteContextCollectorRegistry.php
# Latte version conditions
-
message: '#Comparison operation "(<|>|<=|>=)" between [0-9]{5} and [0-9]{5} is always (true|false).#'
path: src/Compiler/LatteVersion.php
# Errors cause by multiple latte compiler engines
-
messages:
- '#^Property Efabrica\\PHPStanLatte\\Compiler\\Compiler\\CompilerFactory\:\:\$extensions has unknown class Latte\\Extension as its type\.$#'
- '#^Parameter \$extensions of method Efabrica\\PHPStanLatte\\Compiler\\Compiler\\CompilerFactory\:\:__construct\(\) has invalid type Latte\\Extension\.$#'
path: src/Compiler/Compiler/CompilerFactory.php
reportUnmatched: false
-
messages:
- '#^Property Efabrica\\PHPStanLatte\\Compiler\\Compiler\\Latte2Compiler\:\:\$parser has unknown class Latte\\Parser as its type\.$#'
- '#^Property Efabrica\\PHPStanLatte\\Compiler\\Compiler\\Latte2Compiler\:\:\$compiler has unknown class Latte\\Compiler as its type\.$#'
- '#^Parameter \$parser of method Efabrica\\PHPStanLatte\\Compiler\\Compiler\\Latte2Compiler\:\:__construct\(\) has invalid type Latte\\Parser\.$#'
- '#^Parameter \$compiler of method Efabrica\\PHPStanLatte\\Compiler\\Compiler\\Latte2Compiler\:\:__construct\(\) has invalid type Latte\\Compiler\.$#'
- '#^Call to method parse\(\) on an unknown class Latte\\Parser\.$#'
- '#^Call to method compile\(\) on an unknown class Latte\\Compiler\.$#'
- '#^Call to an undefined method Latte\\Engine::getCompiler\(\).$#'
- '#^Call to an undefined method Latte\\Engine::getParser\(\).$#'
- '#^Call to method parse\(\) on an unknown class Latte\\Parser\.$#'
- '#^Instantiated class Latte\\Runtime\\Defaults not found\.$#'
- '#^Call to method getFilters\(\) on an unknown class Latte\\Runtime\\Defaults\.$#'
- '#^Call to method getFunctions\(\) on an unknown class Latte\\Runtime\\Defaults\.$#'
- '#^Method Efabrica\\PHPStanLatte\\Compiler\\Compiler\\Latte2Compiler::getFilters\(\) should return array<string, array\{string, string\}\|string> but returns array<callable\(\): mixed>.#'
- '#^Parameter \$compiler of method Efabrica\\PHPStanLatte\\Compiler\\Compiler\\Latte2Compiler\:\:installMacros\(\) has invalid type Latte\\Compiler\.$#'
path: src/Compiler/Compiler/Latte2Compiler.php
reportUnmatched: false
-
messages:
- '#^Parameter \$extensions of method Efabrica\\PHPStanLatte\\Compiler\\Compiler\\Latte3Compiler\:\:__construct\(\) has invalid type Latte\\Extension\.$#'
- '#^Parameter \#2 \$extensions of method Efabrica\\PHPStanLatte\\Compiler\\Compiler\\Latte3Compiler\:\:installExtensions\(\) expects array\<Latte\\Extension\>, array\<Latte\\Essential\\RawPhpExtension\|Latte\\Extension\|Nette\\Bridges\\ApplicationLatte\\UIExtension\|Nette\\Bridges\\FormsLatte\\FormsExtension\> given\.$#'
- '#^Call to an undefined method Latte\\Engine\:\:parse\(\)\.$#'
- '#^Call to an undefined method Latte\\Engine\:\:applyPasses\(\)\.$#'
- '#^Instantiated class Latte\\Compiler\\TemplateGenerator not found\.$#'
- '#^Call to method generate\(\) on an unknown class Latte\\Compiler\\TemplateGenerator\.$#'
- '#^Call to an undefined method Latte\\Engine\:\:getExtensions\(\)\.$#'
- '#^Call to an undefined method Latte\\Engine\:\:getFunctions\(\)\.$#'
- '#^Parameter \$extensions of method Efabrica\\PHPStanLatte\\Compiler\\Compiler\\Latte3Compiler\:\:installExtensions\(\) has invalid type Latte\\Extension\.$#'
- '#^Call to an undefined method Latte\\Engine\:\:addExtension\(\)\.$#'
path: src/Compiler/Compiler/Latte3Compiler.php
reportUnmatched: false
-
message: '#^Method Latte\\CompileException\:\:setSource\(\) invoked with 3 parameters, 1-2 required\.$#'
path: src/Compiler/Compiler/Latte2Compiler.php
reportUnmatched: false
# is covered by backward compatibility promise
-
messages:
- '#^Although PHPStan\\Node\\InClassNode is covered by backward compatibility promise, this instanceof assumption might break because it''s not guaranteed to always stay the same\.$#'
- '#^Although PHPStan\\Node\\ClassMethod is covered by backward compatibility promise, this instanceof assumption might break because it''s not guaranteed to always stay the same\.$#'
-
messages:
-'#^Although PHPStan\\Rules\\MetadataRuleError is covered by backward compatibility promise, this instanceof assumption might break because it''s not guaranteed to always stay the same\.$#'
-'#^Although PHPStan\\Rules\\FileRuleError is covered by backward compatibility promise, this instanceof assumption might break because it''s not guaranteed to always stay the same\.$#'
-'#^Although PHPStan\\Rules\\LineRuleError is covered by backward compatibility promise, this instanceof assumption might break because it''s not guaranteed to always stay the same\.$#'
-'#^Although PHPStan\\Rules\\TipRuleError is covered by backward compatibility promise, this instanceof assumption might break because it''s not guaranteed to always stay the same\.$#'
-'#^Although PHPStan\\Rules\\IdentifierRuleError is covered by backward compatibility promise, this instanceof assumption might break because it''s not guaranteed to always stay the same\.$#'
-'#^Although PHPStan\\Rules\\NonIgnorableRuleError is covered by backward compatibility promise, this instanceof assumption might break because it''s not guaranteed to always stay the same\.$#'
path: src/Error/ErrorBuilder.php
# to be done later, no idea how to fix it now
-
message: '#^Method Efabrica\\PHPStanLatte\\Collector\\Collector\\AbstractCollector::collectItems\(\) should return array\<A of array\>\|null but returns array\<int, array\<string, mixed\>\>\.$#'
path: src/Collector/Collector/AbstractCollector.php
-
messages:
- '#^Doing instanceof PHPStan\\Type\\ObjectType is error-prone and deprecated\. Use Type\:\:isObject\(\) or Type\:\:getObjectClassNames\(\) instead\.$#'
- '#^Doing instanceof PHPStan\\Type\\Generic\\GenericObjectType is error-prone and deprecated\.$#'
path: src/LatteContext/Collector/ComponentCollector.php
-
message: '#^Parameter \#1 \$object of function get_class expects object, mixed given\.$#'
paths:
- src/Compiler/NodeVisitor/ChangeFiltersNodeVisitor.php
- src/Compiler/NodeVisitor/ChangeFunctionsNodeVisitor.php
-
# present only in nette/utils 4
message: '#^PHPDoc tag @var with type SplFileInfo is not subtype of native type Nette\\Utils\\FileInfo\.$#'
reportUnmatched: false