A long overdue update of what was happening in the VS Code PHP Debug extension.
The current version is 1.40.0.
Since it has been so long since the last post, I’ll list the versions and link relevant release issues.
2023-11-07 1.34.0 - Virtual workspaces support
Part of November 2023 release plan, this was connected to people using extensions like SSH FS that add an extra folder to your workspace that lives in a separate schema like ssh://.
This is actually a workaround for a vscode bug that I analyzed but the process went sideways somewhere and it was left open…
I was always a super fan on VS Code remote development over SSH, so I haven’t experienced much of this problem.
Note: I also gave lectures on how VS Code solves remote development in the most elegant way…
2024-07-15 1.35.0 - Fixes and stream redirect support
A bit bigger release plan for July 2024 has some stability fixes around the DBGp socket handling wile also adding support for stdout stream redirection. I haven’t really used this
but it seemed right to implement this feature as it’s been in DBGp since forever.
2025-04-19 1.36.0 - Watch and clipboard
A release batch after a long time April 2025 saw the start of my experiments with variable evaluation optimization. I implemented clipboard context evaluation that is used when
a user copies a variable from the debug panels. I implemented the var_export format for this.
This release was followed by 1.36.1 and 1.36.2 bugfix releases as the whole eval mess is realy hard to get right.
2025-08-09 1.37.0 - Terminal support and virtual exception property
In the August 2025 plan an old issue came to the top again, and I implemented all the supported terminal variants that VS Code offers.
The other feature was support for the virtual exception property. This is something I proposed and worked on directly in Xdebug. The idea is that when the debugger stops on an exception, you should be able to reference it without needed a variable in the code. I also experimented with formatting the exception data, so that it looks a bit like in the JavaScript debugger.
I plan to play with the UI code, so that the user could add the exception to an ignore list…
2025-11-15 1.38.0 - Advanced copy function
In the November 2025 sprint I finally figured out and implemented a long requested feature. I was able to extend the VS Code debugger UI and display additional Copy as... menu items.
Now the user can copy a variable value as raw, var_export or json_encode.
2025-12-10 1.39.0 - Control socket support
In December 2025 I released support for a feature that I also worked on in Xdebug for a long time. Control socket allows the user to pause a running script and trigger a DBGp connection to the IDE. I implemented Windows support in Xdebug. As of the time of writing, VS Code is the only IDE that supports this feature.
2026-02-02 1.40.0
An ongoing February 2026 plan currently includes a Listen for Xdebug button on the VS Code debug panel. This shows up if the users does not have a launch.json where debug
configurations defined. The button will do the same this as the Lister for Xdebug default configuration. I’ll try to find other useful helpers to put in this place.
Other work
In the last year I have successfully published the Phpactor VS Code extension to the marketplace. I have also implemented evaluatable expressions and inline values. I also made sure the extension works on Windows.
Related to Phpactor I also made an published PHP Phar Explorer VS Code extension. This was needed because Phpactor was packaged and as .phar, and the subs were referenced from within the .phar archive.
Conclusion
If you use the extension and it makes your life easier consider donating via GitHub Sponsors.
As always, ping me on Twitter or GitHub issues if you have problems or questions.
