Stub Files

PHPStan depends on PHPDocs in the analysed and used code. You might encounter a PHPDoc in your vendor/ that’s imprecise and causes an error in the analysis of your project that’s a false positive.

To mitigate this, you can write a stub file with the right PHPDoc. It’s like source code, but PHPStan only reads PHPDocs from it. So the namespace and class/interface/trait/method/function names must match with the original source you’re describing. But method bodies can stay empty, PHPStan is only interested in the PHPDocs. Get inspired by the stubs PHPStan itself uses or by the stubs from the phpstan-doctrine extension.

Stub files aren’t a replacement for discovering symbols so if you’re trying to fix errors like “Function not found” or “Class not found”, check out the discovering symbols guide instead.

The stub file needs to be added to the stubFiles key in the configuration file:

- stubs/Foo.stub
- stubs/Bar.stub

They can have any file extension you’d like. Consider choosing .stub over .php so that the stubs don’t confuse your IDE.

Relative paths in the stubFiles key are resolved based on the directory of the config file is in.

Edit this page on GitHub

© 2016–2020 Ondřej Mirtes