Skip to content

v2026.2.1

Latest

Choose a tag to compare

@lumielis lumielis released this 23 Oct 16:23

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.phpVersion setting offer 8.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 (return in finally, returning from a constructor or destructor, a third argument to define(), 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 as mixed because a vendor/ 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.