Repository navigation
Marketplace version: 2026.2.90100
Features and Improvements
- Added PHP 8.6 support. The engine now knows PHP 8.6 as the newest language level: the version picker and the
phpThunder.phpVersionsetting offer8.6— opt-in, since projects keep defaulting to PHP 8.5 until 8.6 is GA. The parser understands partial function application placeholders (f(?),f(name: ?),f(1, ...)),clone $obj with [...]and the(void)cast, and the compatibility checks now cover the missing PHP 8.5 features and the new PHP 8.6 set. - Added PHP 8.6 diagnostics: readonly properties may declare defaults from 8.6,
#[\Override]is validated on class constants and enum cases, an enum that declares a magic method is rejected, and the PHP 8.6 deprecations (returninfinally, returning from a constructor or destructor, a third argument todefine(), and others) are reported through a dedicated diagnostic. - Updated the bundled PHP stubs to the PHP 8.6 set, adding
Time\Duration,Uri\WhatWg\url_percent_encode(), the new GMP and Intl functions,ReflectionParameter::getDocComment()and the deprecations PHP 8.6 introduces. The PHP 8.6 SNMP surface is included as well and was contributed upstream in JetBrains/phpstorm-stubs#1944.
Bug Fixes
- Fixed every dependency in a project that ships a plain
vendor/tree without Composer metadata being reported as an undefined symbol. - Fixed the bogus
Add import for 'Exception' (multiple matches — pick one)quick fix offering an import for a symbol that already resolves in the global namespace. - Fixed built-in functions such as
mb_strtoupper()inferring asmixedbecause avendor/directory next to the stubs'tests/directory shadowed the bundled stubs. - Fixed
function readonly()being reported as a reserved name; it is legal through PHP 8.5 and only deprecated in 8.6.