| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| phpstan.phar | 2026-10-08 | 31.2 MB | |
| phpstan.phar.asc | 2026-10-08 | 833 Bytes | |
| 2.3.1 source code.tar.gz | 2026-10-08 | 29.2 MB | |
| 2.3.1 source code.zip | 2026-10-08 | 29.1 MB | |
| README.md | 2026-10-08 | 2.3 kB | |
| Totals: 5 Items | 89.5 MB | 1 | |
Same performance, smaller package
We've heard your feedback. PHPStan 2.3.0 was chonky! It weighed 104 MB when downloaded and 268 MB after being unzipped in your vendor/.
Afer #6703, PHPStan 2.3.1 weighs just under 28 MB when downloaded and 87 MB unzipped.
Improvements π§
- Ship the turbo extension as a shared core plus a thin extension per PHP version (#6703), [#15423]
- Build Linux ZTS turbo binaries for PHP 8.3-8.5 too (#6706), [#15422]
- Allow PHP 8.6 in
phpstan/turbo(Composer PIE package) (#6705)
Bugfixes π
- Keep the openssl cipher probe's warnings inside the probe (#6372), [#15176], thanks @SanderMuller!
- Create the implicit throw point of a constructor on the new expression (#6687), [#15396], thanks @janatjak!
- Read the updated value of consumed prefix mutations (#6692), [#15411], thanks @drewmt!
- Cache a function reflection under the file that declares it (#6698), thanks @SanderMuller!
- Do not export what is declared inside a function or method body (#6699), thanks @SanderMuller!
Performance ποΈ
- Check original type for unresolvable types only when resolved type has one (#6675), thanks @Kocal!
- Keep the restored result cache out of forked workers' memory (#6686), [#15387], thanks @janedbal!
- Save the result cache when a file has a parse error (#6694), thanks @SanderMuller!
Internals π
- Start the cold run of the warm-rewrite test in a new second (#6697), thanks @SanderMuller!