psalm
https://github.com/vimeo/psalm
PHP
A static analysis tool for finding errors in PHP applications
Triage Issues!
When you volunteer to triage issues, you'll receive an email each day with a link to an open issue that needs help in this project. You'll also receive instructions on how to triage issues.
Triage Docs!
Receive a documented method or class from your favorite GitHub repos in your inbox every day. If you're really pro, receive undocumented methods or classes and supercharge your commit history.
PHP not yet supported17 Subscribers
Add a CodeTriage badge to psalm
Help out
- Issues
- Narrow the variable of a ??= compared with null
- Branch pushes commit extension-version drift to callmaps into unrelated PRs
- [7.x] Report taint flows after the resolution's fixed point: resolution 28.9s → 15.5s
- Nullsafe call compared to a bool literal no longer narrows its receiver to null
- `@pure` / `@phpstan-pure` override an explicit `@psalm-capabilities` or `@psalm-mutation-free` on the same method
- Fix: Report an unparsable @method return type instead of crashing
- False ArgumentTypeCoercion "expects Closure(X), but parent type Closure(X&static)" for a final class forwarding its Closure(static) param
- static nested in a callable hint (callable(list<static>)) is resolved with the closure's class instead of the receiver
- Union of $this (X&static) and another X keeps &static depending on operand order
- Closure param hints for union receivers and trait users go through the shared FunctionLikeStorage (order-dependent results)
- Docs
- PHP not yet supported