PHP Tools for Visual Studio v1.88.18450

Released: Feb 4, 2026

v1.88.18450 での更新項目

機能

  • PHP Language and Syntax Support:
    • Added support for PHP 8.5 clone used as a function with the new syntax and an optional argument.
    • Added support for PHP 8.0 dereferenceable string syntax.
    • The empty-string type hint is now fully recognized.
  • Type Analysis and Code Diagnostics:
    • Improved type inference for is_numeric().
    • Added a diagnostic for always-false strict comparisons.
    • Made deprecation checks for legacy constructors more detailed.
    • Improved override checks for enum definitions with complex inheritance hierarchies.
    • Improved unknown-type checks for union and intersection types in typed properties.
    • Unused function declarations are no longer reported for __construct and other magic methods.
  • Static Analysis Annotations and Suppression:
    • The @suppress (or @suppresswarnings) tag now recognizes selected PHPMD codes.
    • Support for @psalm-assert-if-true and @psalm-assert-if-false.
    • Support for @phpstan-assert and @psalm-assert with type hints prefixed by =, as used by PHPUnit's assertInstanceOf().
    • The @phpstan-ignore-line annotation is now respected.
  • Refactoring, Code Actions and Formatting:
    • Added new quick refactoring to replace array_merge() with array spread syntax.
    • Added new quick refactoring to clean up unnecessary parentheses around new expressions in PHP ≥ 8.4.
    • Added new quick refactoring to convert anonymous functions into the new callable syntax.
  • IntelliSense and Code Completion:
    • Improved completion of variable names inside the compact() function.
    • Completion of array keys when defining arrays inside function calls with structured array parameter hints.
  • Framework and Tooling Support:
    • Improved library support for CodeIgniter 3 projects.
    • Enhanced CI3 support by adding dynamic properties to CI_Controller based on loaded libraries.
  • Testing and Documentation:
    • Added inline PestPHP test case runner support.
    • Updated multi-language PHP manual.
  • Diagnostics for Unoptimized Special Compiler Functions:
    • Added new diagnostic PHP6616 reports calls to special compiler-optimized functions that are not imported into the current scope and therefore cannot be translated into more efficient opcodes.

不具合の修正

  • PHP Language and Syntax Support:
    • Fixed syntax errors involving Echo used as part of a namespace name.
  • Type Analysis and Code Diagnostics:
    • Fixed issue to correctly resolve multiple negative @phpstan-assert-if-* annotations using the empty-string type hint.
    • Fixed a false warning when accessing an array item of a structured array type after it has been modified.
    • Fixed a false deprecation warning for ReflectionMethod::__construct().
    • Fixed false errors when using member fields or anonymous functions in constant expressions.
    • Fixed an invalid "unnecessary parentheses" hint in and / or conditions.
    • Fixed incorrect code flow expansion caused by @phpstan-assert.
  • Refactoring, Code Actions and Formatting:
    • Fixed quick fixes inside attributes.
    • Fixed a code action that incorrectly converted code to an arrow function containing the object operator (->).
    • Fixed the Align Consecutive Assignments feature so it now works correctly inside closures and anonymous functions.
    • Fixed issue so that arrow functions (fn) are no longer suggested inside constant expressions.
    • PSR-4 class name fixes are no longer suggested when the file name is not a valid class identifier.
  • IntelliSense and Code Completion:
    • Auto-import now respects existing use groupings and adds new imports into the appropriate group.
    • Fixed issue so that references to methods defined in trait adaptation blocks, including renamed methods, are correctly resolved.
  • Framework and Tooling Support:
    • Fixed broken type inference when a method in a Composer package returns self but is only annotated in a base interface.
    • Respects generated _ide_helper, _laravel_idea, and _laravel_ide files in diagnostics.