PHP Tools for Visual Studio v1.5x

Released: Jan 8, 2021

v1.5x での更新項目

v1.59.15076

Updated Dec 9, 2021

Features

  • The stable release of PHP 8.1 is now included which is installed upon setting in Project Properties.
  • PHP 8.2 development version has been added.
  • Displaying x86/x64 flag in IIS server in Project Properties.
  • Improves performance of outputting text to Microsoft Visual Studio output panes.
  • When installing IISExpress automatically, IISExpress 10 is installed now instead of IISExpress 8.
  • .vs\phptasks.json file created for Project Events can be moved to the root of project (manually).
  • Improves code analysis in trait with private abstract functions.
  • Improves code analysis for use of [] within function call argument.
  • Improves code analysis for isset() wihtin global code.
  • IntelliSense recognizes class names within parameters of PHP 8 attributes.
  • Improves code analysis when passing non-variables by reference.
  • Tooltips correctly displays PHP 8.1 intersection types.
  • Improves code completion after nullable typehint (in class properties declaration).
  • Immediate and Watch windows show the reason why expression couldn't be evaluated.
  • Track objects (Make Object ID) improved.
  • Eval result expansion doesn't cause side-effects.
  • Edit value correctly escapes string values.
  • Xdebug extension automatically updated.
  • Improves debugger stability.

Fixes

  • Fixes occasional freezes when switching project to use IIS web server.
  • Hides PHP property page in non-PHP projects.
  • Fixes F12 when navigating to include file path.
  • Fixes IntelliSense not showing/recognizing STD global constants.
  • IISExpress is not required for IIS to work
  • (VS 2022) Console project behaves as console project, not web project.
  • Fixes possible lagging when typing.
  • Fixes lowercased file names in publish and IntelliSense.
  • Fixes crash and repetitious "composer install" when installing missing composer packages from Solution Explorer.

v1.58.15002

Updated Nov 16, 2021

Features

  • Debugger now shows more specific icon glyphs in Watch window for class statics container and constants.
  • Debugger no longer allows you to make object ID of pseudo variables (class statics container).
  • Debugger now shows user constants in Watch window.
  • When creating a CakePHP project from composer, /webroot is now automatically set as project root folder.
  • Wizard for new project from composer now prefetches cakephp/app package information for quick create.

Fixes

  • Visual Studio 2022: adds back PHP project and file icons in Solution Explorer.
  • Fixed rare Visual Studio freeze during project load.
  • Performance fixes during project load, avoids making Visual Studio unresponsive for a period of time.
  • Performance fixes when Remote Explorer is opened in combination with legacy project type.
  • Fixed Visual Studio unresponsiveness when Remote Explorer is opened and the remote profile set to Files Included in Project.
  • Fixed "PHP Console Project" new project template. Now it contains the default index.php file.
  • Fixes debug session stability when a duplicit function breakpoint is set.
  • General optimizations.

v1.57.14847

Updated Oct 25, 2021

Features

  • Debugger
    • Make Object ID - Added the ability to pin an object from the Watch Window or Quick Watch using the Make Object ID context menu command. The pinned object can be tracked during the whole request execution.
      • Pinning an object creates a weak reference which can be revealed in the Locals window or in the Watch window using $1 alias (or $2, $3, ... correspondingly). Pinned objects are also marked in quick watches by its {$-index} alias. This works even within arrays and inside other objects.
    • Complex Expressions - Added the ability to expand complex expressions, including results of function calls, magic properties, and complex combination with operators. Array values can now be expanded and listed through all its entries. It is not limited to 32 entries anymore.
  • Editor
    • IntelliSense tool-tips and error tool-tips are now shown even during debugging. Previously, tool-tips were only displayed when Microsoft Visual Studio was in design mode (not debug mode).
  • Project Events
    • Added customizable Project Events which allow you to trigger commands on certain events.
      • Initially, there are the following triggers:
        • Project Opened gets triggered when a project is opened in Visual Studio.
        • Before Publish is called before publish (i.e. upload pending changes) gets started.
        • After Publish gets called after the publish.
        • After Clean is triggered by the Project / Clean command.
        • Files Changed happens when a file is modified both inside or outside Visual Studio.
        • File Saved is caused by saving a file inside Visual Studio.
      • And the following actions to choose from:
        • Publish uploads pending changes using the selected remote profile. In case of File Saved, only that file is uploaded.
        • Custom Command allows entering custom cmd commands. The commands have php.exe (which is chosen in Application project property page) in its %PATH% environmental variable.
  • Remote Explorer
    • Publish and the whole Remote Explorer is now more configurable. Open the Remote Explorer and follow the Manage button.
      • Added the ability to specify wildcard file mask to simply ignore files or folders from being tracked by the Remote Explorer. Folders or files matching the Ignored wildcards won't be shown and won't be uploaded to the remote servers.
      • Added the option to choose Publish Scope, whether to track the whole project directory (All Files in Project Folder) or to track files included in the project, i.e. the files shown in the project in Solution Explorer (Files Included in Project).
      • The Remote Explorer now respects the legacy setting - Publishable - which could be set in project items properties. File items annotated with this project property are ignored by the Remote Explorer. This feature requires you to set the Publish Scope to Files Included in Project.
  • Automatic Publish
    • Improved configuring automatic uploads to the remote server. It is now more configurable, using the new Project Events, and the option is more accessible. Open the Remote Explorer and change the Auto setting. Clicking Manage Project Events opens all the project events, where additional settings can be changed.
  • Microsoft Visual Studio 2022
    • Phar Browser with Icons - Expanding .phar files in Solution Explorer now reveals corresponding file icons as well.

Fixes

  • Rename refactoring correctly replaces class names within extends and implements.
  • Fixed opening project properties on Visual Studio 2022.
  • Fixed Remote Explorer to correctly create directories on SFTP server.
  • Fixed Remote Explorer to be working with Open Folder feature.
  • Fixed Remote Explorer UI glitches.
  • Adds more logging during remote publish process.
  • Fixed some errors locations, e.g. the warning about overflowing an integer number into floating-point number.

v1.56.14646

Updated Oct 3, 2021

Features

  • Microsoft Visual Studio 2022: Preview 4 required.
  • Editor
    • Added structure guidelines for Visual Studio 2019 and 2022.
    • Improved inferred control flow type analysis.
    • Improved highlighting case and default within switch blocks.
    • Improved highlighting occurrences of global variables in @global PHPDoc tag.
    • Type analysis of global variables now takes @global keyword above a function into account.
    • Improved navigating PHPDoc @see annotations.
    • Added code completion after @see keyword.
    • Improved type analysis.
    • Improved type inference of array_pad(), array_fill() and array_flip().
  • Debug
    • Added support for adding breakpoints based on function name. You can now:
      • Filter by subdirectory (use syntax subdir!typename::methodname).
      • Navigate to function breakpoint.
      • Search functions by partial class name.
      • Resolve trait methods.
      • Show bound state.
    • Updated bundled PHP 8.0 and PHP 8.1.
  • Remote Explorer
    • Improved switching between profiles.

Fixes

  • Editor
    • Stability fixes for projects containing large chained expressions.
    • Stability fixes for blade editor.
    • Fixed false positive warning for [] operator.
  • Remote Explorer
    • Fixed publish after switching profiles.
    • Fixed remote upload when target folder does not exist yet.
  • Other Fixes
    • Stability fixes for projects containing large chained expressions.
    • Fixed opening 3rd party HTML non-PHP documents.
    • Fixed clickable links in tooltips.
    • Memory optimization.
    • Optimizations.

v1.56.14540

Updated Sep 14, 2021

Features

  • Microsoft Visual Studio 2019: 16.10+ is now required.
  • Visual Studio 2022: Preview 3 is now required.
  • The editor now colorizes escaped characters in string literals.
  • Added a new command-line project template (Common Project System).
  • Improved speed of running projects.
  • Tooltips now have more details.
  • Tooltips now provide a description of the function return value.
  • Updated PHP manual localization.
  • Remote Explorer
    • Remote browser now allows you to delete remote files or folders.
  • Debug
    • Improved function breakpoints (Debug/Windows/Breakpoints - New Function Breakpoint).
    • Conditional breakpoints are now checked for validity.

Fixes

  • Twig fixes.
  • Publish on save fixes.
  • Fixed use of readonly keyword in PHP <= 8.0.
  • Fixed remote explorer' Open and Compare feature.
  • Fixed VS crash when project folder contains restricted files.
  • Fixed possible deadlock on solution unload.
  • Remote Explorer
    • Remote profile UI fixes.
  • Debug
    • Fixed remote debugging when mapping was needed.
    • Fixed removing and adding breakpoints during debug session.
    • DBGpProxy timeout.
    • Bug fixes.

v1.56.14385

Updated Aug 20, 2021

Features

  • Updated networking libraries.
  • Editor
    • Updated PHP manual.
    • Added PHP 8.1 read-only properties, new closure syntax, new in init, and corresponding checks.
    • Integrated PHP manual with fixed deprecation's info and fixed nullable parameter types.
    • Code formatting now deals with rare constructs in switch-case-elseif blocks.
  • Debug
    • Added more output logging during IIS Express start.
    • Now outputs more information in debug output.

Fixes

  • Internal optimizations.
  • Fixed IntelliSense updates when folders are changed externally.
  • Fixed rare UI freezes on project load.
  • Fixed rare freeze on Visual Studio load.
  • Fixed debug launch in case Visual Studio is not authorized to access php.ini.
  • Updated WebPI feed with fixes to PHP 5.4.
  • HTML format fixes.
  • Remote Explorer
    • Deleted items are slightly dimmed.

v1.56.14305

Updated Aug 12, 2021

Features

  • Remote Explorer Window
    • Added the ability to preview local changes.
    • Added a new remote host explorer.
    • Added the ability to open and browse files on remote host.
    • Added the ability to compare local changes with server.
    • Added the ability to download subfolders/files into a local folder.
    • Added the ability to undo local changes.
    • Added the ability to upload files with drag & drop from Microsoft Windows Explorer to Remote Browser.
  • Editor
    • Added new PHP - Variable themed color.
    • Added new class name themed color.
    • Added PHP - Label new color (gets bold).
    • Improved code completion hinting.
  • Debugger
    • Added the ability to disable exception breakpoints during a debugging session.
    • Added more exceptions information.
    • Added support for exception breakpoint filtering.

Fixes

  • Peek Window fix for files that are not yet opened.
  • Icons in tooltips respect the Visual Studio theme.
  • Fixed legacy Microsoft Publish process.
  • Fixed Difference Viewer on Visual Studio 2022.
  • Highlighting and refactoring of symbols within <?= ?> tags.
  • Fixed occasional freeze/deadlock.
  • Activation Window UI fix for Windows 11.
  • Fixed falsely reported missing composer packages.
  • Fixed PHP Error Log Output.
  • Fixed use of IIS and IIS Express.
  • Fixed use of IIS Express on Visual Studio 2010, 2012, 2013.

v1.55.14068

Updated Jul 26, 2021

Features

  • Added new Project from Composer project template.
  • Added new Project from Remote project template.
  • Added new WordPress project template.
  • Added new Project Fixes Wizard.
  • Microsoft Visual Studio 2022 Preview 2 support requires:
    • Visual Studio 2022 Preview 2.
    • ASP.NET Web Development Workload.
  • Editor:
    • Editor brace matching color respects user settings.
    • Added context aware keywords in code completion.
    • Added highlighting of contextual keywords (break, continue, return, yield).

Fixes

  • Automatic project fix now asks for elevated rights just once.
  • Fixed occasional missing project properties content.
  • Fixed crash when opening certain UNC paths.
  • Fixed crash when there is no PHP and it's a fresh new installation.
  • Fixed occasional UI freezes on VS project load.
  • Fixed crashes during working with Drupal projects.
  • Stability fixes.

v1.55.13902

Updated Jul 14, 2021

Features

  • Added New Web Project Wizard.
  • Added new From Existing Code Wizard.
  • Added new integration into Project From Existing Code.
  • Project From Existing Code allows you to create projects from a remote source.
  • Added new context menu command: New PHP Script.
  • Since Microsoft Visual Studio 2019: Common Project System (CPS) is used by default.
  • Publish functionality has been added to the new CPS project type.
  • The new project wizard verifies and updates configurations.
  • Code completion sorts the variables by its name, so they are next to other items with the same name.
  • Code completion preselection now prefers variables and local symbols.
  • Publish/download now tries to reconnect automatically when connection is lost.
  • Integrated composer updates.
  • Enabled a few more features without activation.
  • Performance improvements.
  • Improved extension startup.

Fixes

  • Debugger fixes and improvements.
  • Removed forgotten and unused PHPUnit menu commands.
  • Fixed menu icons on VS 2019.
  • Debugger stability fixes.
  • Stability fixes.

v1.52.13623

Updated Jun 28, 2021

Features

  • Added new auto-import on code completion features.
    • Configurable in Tools/Options - Text Editor/PHP/IntelliSense.
    • Automatically adds use alias or inserts fully qualified name.
  • Added completion filtering with letters.
  • Completion now inserts fully qualified name if there would be a conflict with existing alias.
  • Completion tooltip now doesn't show URLs information.
  • (Microsoft Visual Studio 2019) Completion now shows full namespace for symbols that will be imported.
  • Added support for more undocumented .phpstorm.meta notations (e.g. & as a type separator).
  • Added notification InfoBar about expired licenses.
  • Optimizations.

Fixes

  • Fixed slow startup time and notification by Visual Studio.
  • Fixed incorrectly underlined errors in PHP Editor.
  • Freeze fixes.

v1.52.13483

Updated Jun 17, 2021

Features

  • PHP diagnostics:
    • You can now restrict $GLOBALS use in PHP 8.1.
    • Improved use of [ ] in read expression.
  • Common Project System now provides Ctrl+F5 functionality.
  • PHP installed as part of XAMPP can now be used by projects.
  • Integrated composer has been updated to version 2.
  • Improved Tools/Options/PHP Tools UI layout.
  • Updated PHP 5.4 installer.
  • Legacy Microsoft Visual Studio Support:
    • Re-enabled smart tag actions in Microsoft Visual Studio 2015.

Fixes

  • Fixed editor highlighting occurrences.
  • Legacy Microsoft Visual Studio Support:
    • Fixed smart tags and corresponding Visual Studio crashes in Visual Studio 2010 - 2015.
    • Fixed Visual Studio 2010 - Visual Studio 2015 support (some configurations have a missing DLL).

v1.52.13439

Updated Jun 4, 2021

Features

  • short-open-tag directives now read from php.ini when using built-in PHP.
  • Added project property <ShortOpenTag>true</ShortOpenTag> to force enable short open tags.
  • Optimized background tasks.
  • Updated PHP builds.
  • Updated networking protocols.

Fixes

  • Debug fixes for globals in Watch window.
  • Visual Studio 2019 fixes:
    • Reflects Visual Studio 16.10 API updates.
    • Fixed PHP Editor with custom file extension.
    • Common Project System (CPS) option enabled in New|Project|PHP Web Project.
    • Fixed cursor color in Regex Tool Window in Dark Theme.
    • Regex editor fixes for double-quoted strings.

v1.52.13403

Updated May 25, 2021

Fixes

  • Fixed invalid path in Test Explorer.
  • Fixed errors in case of invalid paths in project system.
  • Fixed debug being terminated in exception handling.
  • eval() has tooltip.

v1.52.13357

Updated May 10, 2021

Features

  • Regex Editor (Microsoft Visual Studio 2019):
    • Regular expressions inside preg_*** functions or HEREDOC are now colorized and highlighted.
    • Regular expressions now provide brace matching.
    • Quick action Regex Designer on regex now opens Regex Tool Window.
    • Regex Tool Window panel with regex analysis can now sync with code.
    • Regex Tool Window now shows defined groups.
    • Regex Tool Window now allows you to test against a test subject and shows detailed matches.
    • Added more information in the documentation.
  • PHP 8.1 (dev):
    • Development version of PHP 8.1 can now be installed automatically.
  • Other:
    • (Visual Studio 2017) Test Explorer now supports Open Folder projects.
    • Updated Xdebug and PHP releases.
    • Updated publish protocols to the latest version.

Fixes

  • Code action for getter/setter annotates type hints correctly.
  • Correct project name in Text Explorer.
  • Composer dependencies tree fixes and improvements.
  • (Microsoft Visual Studio 2017 and 2019) fixes Folder Project handling.
  • General optimizations and fixes.
  • HEREDOC parsing fixes.
  • Named parameters fixes for built-in functions with unusual parameter names.

v1.51.13247

Updated Apr 9, 2021

Features

  • Test Explorer now works with Open Folder feature (Microsoft Visual Studio 2019).
  • Added new code actions:
    • Sort Uses (PSR-12).
    • Remove and Sort Uses.
  • Improved remote debug mapping UI (in Project Properties):
    • For local path suggestions.
    • For path validation.
  • Improved DBGpProxy UI (in Project Properties):
    • For validation and connection verification.
  • Updated PHP 8 validation to check the extension php_gd.dll instead of php_gd2.dll.

Fixes

  • Fixed crashing the app on rare cases with legacy project types.
  • Reports use of curly braces as error in PHP >= 8.0.

v1.50.12929

Updated Feb 26, 2021

Features

  • Now shows PHP file indexing details in Microsoft Visual Studio 2019 progress status (lower left corner).
  • Improved composer package performance.
  • Improved project load times.
  • Overall performance improvements.
  • You can now log details from WebPlatformInstaller process.

Fixes

  • (VS 2019) Publish functionality fixes.
  • Reverted asynchronous code completion.
  • Fixed `NullReferenceException` dialog when renaming files.
  • Fixed crash on opening a project.
  • Fixed crash when working with Drupal projects.

v1.50.12628

Updated Jan 8, 2021

Features

  • Code Analysis
    • Respects @template annotation in PHPDoc.
    • Handles inline @var annotation.
    • Signature help for ambiguous constructors (new \ReflectionMethod).
    • PHPDoc array type with union elements annotation (array).
    • PHPDoc allows for nullable type annotation (e.g. ?int).
    • Improved code analysis, avoids some false positives.
    • Improved code flow analysis, isset(), is_resource(), and type inference.
    • Improved analysis for lambda function use variables.
    • CLI specific constants and variables are allowed and code completed.
    • Updated .phpstorm.meta.php parser for type inference.
  • Editor
    • (Microsoft Visual Studio 2017 and 2019) Progress UI in lower left corner of Visual Studio.
    • (Visual Studio 2019) Improved type names shown in tool tips.
    • Performance optimizations.
    • "Go to Implementation" for traits.

Fixes

  • Code Analysis
    • Does not respect PHP4-style ctor when using PHP 7.1+.
    • Fixed return check of generator functions.
    • Fixed check for __clone() magic method, can be private.
    • Fixed check for array access on \SplObjectStorage.
    • Fixed case and array key duplicity check for non-printable characters.
  • Editor
    • Fixed "Go to Implementation" in case of an anonymous class.