-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathphpstan.neon.dist
More file actions
33 lines (32 loc) · 1.76 KB
/
phpstan.neon.dist
File metadata and controls
33 lines (32 loc) · 1.76 KB
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
includes:
# Enables PHPStan's @internal enforcement rules (new.internalClass /
# method.internalClass / staticMethod.internalClass / return.internalClass /
# parameter.internalClass / classConstant.internalClass / catch.internalClass).
# These ship under bleedingEdge because they are not part of the standard
# levels yet (PHPStan 2.x); they may graduate in a future major. composer
# require-dev pins phpstan/phpstan to ^2.1.13 — the floor where these rules
# are actually present, so a lockfile downgrade cannot silently disable
# enforcement. Pinned to the vendored .neon so the rule set tracks whichever
# phpstan version composer resolves.
- vendor/phpstan/phpstan/conf/bleedingEdge.neon
parameters:
level: 6
paths:
- src
- tests
excludePaths:
- src/Laravel
tmpDir: .phpstan.cache
ignoreErrors:
# PHPUnit marks AssertionFailedError + Exception @internal, but test code
# legitimately catches and asserts against them (the auto-injection test
# boundary, response-validator failure surfaces). PHPUnit's @internal is
# about THEIR API contract, not ours — our enforcement target is calls
# that cross our root namespace boundary (Studio).
- '#internal class PHPUnit\\Framework\\(AssertionFailedError|Exception)#'
# `TestCase::name()` is PHPUnit's de-facto API for in-test introspection
# (Symfony's TestContainer, Mockery, Pest, and the SpecPriorityOverride
# design all rely on it). Marked @internal upstream but no replacement.
# SkipOpenApiResolver and OpenApiSpecResolver call it to resolve the
# current test method name for attribute lookup.
- '#Call to internal method PHPUnit\\Framework\\TestCase::name\(\)#'