Psalm is a static analysis tool for finding errors in PHP applications, built on top of PHP Parser.
It's able to find a large number of issues, but it can also be configured to only care about a small subset of those.
Try a live demo, or install it in your project by following the Quickstart Guide below.
Install via Composer:
composer require --dev vimeo/psalm
Add a config:
Then run Psalm:
The config created above will show you all issues in your code, but will emit
INFO issues (as opposed to
ERROR) for certain common trivial code problems. If you want a more lenient config you can specify the level with
./vendor/bin/psalm --init [source_dir] [level]
You can also learn how to suppress certain issues.
How Psalm Works
A basic rundown of Psalm’s internals can be found in docs/how_psalm_works.md.