In less than 12 months, Drupal 7 will be end-of-life and no longer supported. Plan your upgrade to Drupal 10 now.

Which PHPStan level should you use?

Which PHPStan level should you use?

PHPStan has different levels.

When you run it on your code, the errors you see will depend on what level you set.

In yesterday's email, the first example code block didn't generate an error until level 5 was used.

So, how do you know which level to use?

For greenfield projects

For new (greenfield) code, install and configure PHPStan before you write any code and have and have it run automatically as part of a CI pipeline.

If you work on a team, speak with the other members and decide how strict you want PHPStan to be.

Read the rule levels and decide which are the most valuable for your team.

If you haven't used PHPStan or static analysis before, maybe start with a lower level.

For me, typehints and return type checking are a must, though I like to use as high a level as possible.

The more information you can provide to PHPStan, the more it will understand your code, give better results and be more likely to find potential bugs or issues.

For brownfield projects

For existing (brownfield) code, start at the lowest level, which will give you the least number of errors.

Fix any errors, exclude any rules you want to ignore or generate a baseline containing any existing errors.

If you like, increase the level and repeat the process.

Keep increasing the level as long as you feel comfortable, and PHPStan gives you meaningful results.

Again, if you haven't used PHPStan or static analysis before, maybe stick with a lower level.

If you start with a lower level, you can increase it later.

- Oliver

P.S. Do you need immediate access to an expert Drupal Developer? With my Drupal development subscription, make unlimited requests for a fixed monthly price in less time than posting to a job board!

Was this useful?

Sign up here and get more like this delivered straight to your inbox every day.

About me

Picture of Oliver

I'm an Acquia-certified Drupal Triple Expert with 17 years of experience, an open-source software maintainer and Drupal core contributor, public speaker, live streamer, and host of the Beyond Blocks podcast.