---
title: Making PHPStan stricter
date: 2024-05-05
permalink: daily/2024/05/05/making-phpstan-stricter
tags:
  - software-development
  - php
  - phpstan
cta: ~
snippet: |
  As well as PHP, you can make PHPStan stricter.
---

Continuing yesterday's thought on [strictness in PHP][yesterday], today I want to talk about adding more strictness to PHPStan.

Adding the [PHPStan Strict Rules extension][extension] makes PHPStan stricter by adding new, more opinionated rules.

For example:

* Require booleans in if, elseif, ternary operator, after !, and on both sides of && and ||.
* Use the `$strict` parameter with `in_array`, `array_search`, `array_keys` and `base64_decode`.
* Disallow empty().
* Require calling parent constructor.

You can enable and disable rules as needed but, like setting the PHPStan level, ideally I like to enable them all by default and see how strict I go.

It depends on the code being tested and the preference of the team, though I find the stricter the rules, the less bugs there are.

[extension]: https://github.com/phpstan/phpstan-strict-rules
[yesterday]: {{site.url}}/daily/2024/05/04/strict-typing-in-php