generated from mimmi20/template
-
Notifications
You must be signed in to change notification settings - Fork 1
/
phpstan.neon
147 lines (108 loc) · 4.5 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
parameters:
level: 1
phpVersion: 80300 # PHP 8.3
parallel:
maximumNumberOfProcesses: 1
processTimeout: 200.0
paths:
- src
- tests
scanFiles:
- %currentWorkingDirectory%/vendor/autoload.php
- %currentWorkingDirectory%/vendor/squizlabs/php_codesniffer/autoload.php
- %currentWorkingDirectory%/vendor/squizlabs/php_codesniffer/src/Util/Tokens.php
# enable stricter analysis of benevolent union types
checkBenevolentUnionTypes: true
# reports use of dynamic properties as undefined
checkDynamicProperties: true
# reports code paths with missing return statement in functions and methods with @return mixed PHPDoc
checkExplicitMixedMissingReturn: true
# reports function and method calls with incorrect name case
checkFunctionNameCase: true
# be strict about values with an unspecified (implicit mixed) type
checkImplicitMixed: true
# reports references to built-in classes with incorrect name case
checkInternalClassCaseSensitivity: true
# require that callable signatures are specified
checkMissingCallableSignature: true
# reports return typehints that could be narrowed down because some of the listed types are never returned
checkTooWideReturnTypesInProtectedAndPublicMethods: true
# reports properties with native types that weren’t initialized in the class constructor
checkUninitializedProperties: true
# reports missing #[\Override] attribute
checkMissingOverrideMethodAttribute: true
# doesn’t require typehints for properties if the types can be inferred from constructor injection
inferPrivatePropertyTypeFromConstructor: false
# prevents reading key and value variables set in foreach when iterating over a non-empty array
polluteScopeWithAlwaysIterableForeach: false
# prevents reading variables set in for loop initial statement and while loop condition after the loop
polluteScopeWithLoopInitialAssignments: false
# report always true last condition in a series of elseif branches and match expression arms
reportAlwaysTrueInLastCondition: true
# reports violations of parameter type contravariance and return type covariance
reportMaybesInMethodSignatures: true
# reports violations of property type invariance
reportMaybesInPropertyPhpDocTypes: true
# reports violations of parameter type contravariance and return type covariance in static methods
reportStaticMethodSignatures: true
#
reportWrongPhpDocTypeInVarTag: true
# differentiate between PHPDoc and native types (if false)
treatPhpDocTypesAsCertain: false
tipsOfTheDay: false
exceptions:
implicitThrows: false
checkedExceptionRegexes:
- '#Exception#'
- '#Throwable#'
check:
missingCheckedExceptionInThrows: true
tooWideThrowType: true
cognitive_complexity:
class: 25
function: 9
type_coverage:
return_type: 100
param_type: 97.2
property_type: 100
constant_type: 100
# also, how many files has declare strict types
declare: 100
unused_public:
methods: true
properties: true
constants: true
local_methods: false
type_perfect:
null_over_false: true
no_mixed: false
narrow_param: true
ignoreErrors:
- '~types as the only types passed to this method~'
# - '~expects array<string, string>, array<string, string\|null> given~'
stubFiles:
- stubs/psr/container/ContainerExceptionInterface.stub
- stubs/psr/container/NotFoundExceptionInterface.stub
- stubs/psr/container/ContainerInterface.stub
rules:
# code complexity
- Symplify\PHPStanRules\Rules\NoDynamicNameRule
- Symplify\PHPStanRules\Rules\ForbiddenExtendOfNonAbstractClassRule
# domain
- Symplify\PHPStanRules\Rules\Domain\RequireExceptionNamespaceRule
- Symplify\PHPStanRules\Rules\Domain\RequireAttributeNamespaceRule
- Symplify\PHPStanRules\Rules\Enum\RequireUniqueEnumConstantRule
- Symplify\PHPStanRules\Rules\PreventParentMethodVisibilityOverrideRule
# paths
- Symplify\PHPStanRules\Rules\NoReferenceRule
# explicit naming
- Symplify\PHPStanRules\Rules\ForbiddenMultipleClassLikeInOneFileRule
- Symplify\PHPStanRules\Rules\Complexity\ForbiddenArrayMethodCallRule
# - Symplify\PHPStanRules\Rules\CheckRequiredInterfaceInContractNamespaceRule
# naming
- Symplify\PHPStanRules\Rules\RequireAttributeNameRule
# naming
- Symplify\PHPStanRules\Rules\Explicit\ExplicitClassPrefixSuffixRule
- Symplify\PHPStanRules\Rules\NoReturnSetterMethodRule
- Symplify\PHPStanRules\Rules\UppercaseConstantRule
- Symplify\PHPStanRules\Rules\ClassNameRespectsParentSuffixRule