Skip to content
c53312e
Compare
Choose a tag to compare

Improvements 🔧

  • Basic support for PHP 8.2
    • #[\AllowDynamicProperties] attribute support (RFC)
    • #[\SensitiveParameter] attribute support (RFC)
    • Updated function signatures
    • Fixed deprecations in PHPStan
  • --debug: print previous exceptions (phpstan/phpstan-src@a342b2b), #7590
  • Changed the MutatingScope class to not include impossible arms in it's resulting union type. (#1515), thanks @mad-briller!

Bugfixes 🐛

Function signature fixes 🤖

8dbba63
Compare
Choose a tag to compare

Improvements 🔧

Bugfixes 🐛

Function signature fixes 🤖

b7648d4
Compare
Choose a tag to compare

Major new features 🚀

Bleeding edge 🔪

If you want to see the shape of things to come and adopt bleeding edge features early, you can include this config file in your project's phpstan.neon:

includes:
	- vendor/phpstan/phpstan/conf/bleedingEdge.neon

Of course, there are no backwards compatibility guarantees when you include this file. The behaviour and reported errors can change in minor versions with this file included. Learn more

Improvements 🔧

Bugfixes 🐛

Function signature fixes 🤖

cd0202e
Compare
Choose a tag to compare

Improvements 🔧

  • Support for relative paths in editorUrl for Docker environment (#1414), #7043, thanks @Wirone!
  • Support positional arguments in sprintf() constant format inference (#1437, #1440, #1441), thanks @staabm!
  • Dynamic return type extension for sscanf() and fscanf() (#1434), thanks @staabm!
  • Virtual nodes (InClassMethodNode, InFunctionNode, InClosureNode) - pass and provide getters for specific reflection so that Scope::getFunction() does not need to be used (phpstan/phpstan-src@f18bd86)

Bleeding edge 🔪

If you want to see the shape of things to come and adopt bleeding edge features early, you can include this config file in your project's phpstan.neon:

includes:
	- vendor/phpstan/phpstan/conf/bleedingEdge.neon

Of course, there are no backwards compatibility guarantees when you include this file. The behaviour and reported errors can change in minor versions with this file included. Learn more

Bugfixes 🐛

Function signature fixes 🤖

  • Be more specific about the XHProf sampling type (xhprof_sample_disable()) (#1436), thanks @johnbillion!
e6f145f
Compare
Choose a tag to compare

Improvements 🔧

Bugfixes 🐛

Function signature fixes 🤖

86ffc06
Compare
Choose a tag to compare

Improvements 🔧

Bleeding edge 🔪

  • Use explicit mixed for global array variables (#1411), thanks @herndlm!

If you want to see the shape of things to come and adopt bleeding edge features early, you can include this config file in your project's phpstan.neon:

includes:
	- vendor/phpstan/phpstan/conf/bleedingEdge.neon

Of course, there are no backwards compatibility guarantees when you include this file. The behaviour and reported errors can change in minor versions with this file included. Learn more

Bugfixes 🐛

32f1077
Compare
Choose a tag to compare

Improvements 🔧

Bleeding edge 🔪

If you want to see the shape of things to come and adopt bleeding edge features early, you can include this config file in your project's phpstan.neon:

includes:
	- vendor/phpstan/phpstan/conf/bleedingEdge.neon

Of course, there are no backwards compatibility guarantees when you include this file. The behaviour and reported errors can change in minor versions with this file included. Learn more

Bugfixes 🐛

62fcadc
Compare
Choose a tag to compare

Bleeding edge 🔪

  • Add @readonly rule that disallows default values (#1391), thanks @herndlm!

If you want to see the shape of things to come and adopt bleeding edge features early, you can include this config file in your project's phpstan.neon:

includes:
	- vendor/phpstan/phpstan/conf/bleedingEdge.neon

Of course, there are no backwards compatibility guarantees when you include this file. The behaviour and reported errors can change in minor versions with this file included. Learn more

Bugfixes 🐛

25e0694
Compare
Choose a tag to compare

Improvements 🔧

  • Adapt to different vendor-dir setting in composer.json, and also COMPOSER environment variable (#1384), thanks @canvural!

Bugfixes 🐛

Internals 🔍

22e7559
Compare
Choose a tag to compare

Improvements 🔧

  • Read PHPDocs from trait stubs (#1390), #5233, thanks @canvural!
  • Infer non-empty-string on str-casing functions comparison with constant string (#1382), thanks @staabm!
  • Make trait properties and methods first class node citizens (#1370), thanks @herndlm!

Bugfixes 🐛

  • Support intersection types in MutatingScope::getTypeToInstantiateForNew() (#1388), #7374, thanks @rvanvelzen!