Xdebug Update: August, September, and October 2022
In this monthly update I explain what happened with Xdebug development in this past month. These are normally published on the first Tuesday on or after the 5th of each month.
Patreon and GitHub supporters will get it earlier, around the first of each month.
You can become a patron or support me through GitHub Sponsors. I am currently 45% towards my $2,500 per month goal. If you are leading a team or company, then it is also possible to support Xdebug through a subscription.
I did not find the time to write this report in the last two months, sorry for that. So today I present you with a report for the last quarter.
In the last three months, I spend 63 hours on Xdebug, with 77 hours funded.
Xdebug 3.2
In the preceding months I worked on a few more specific PHP 8.2 issues, and generic bugs.
PHP 8.2 now presents __debugInfo()
for closures, which means that Xdebug now no longer needs to emulate those itself. This does result in minor changes in the output that IDEs present for closures, but not with less information.
I also fixed nearly a dozen bugs. Some were related to the new return value debugging feature, or specific PHP 8.2 support.
A few more bugs are outstanding, and I intend to release Xdebug 3.2 when PHP 8.2.0 comes out at the end of November. I will also create one more Xdebug 3.1 release (3.1.6), to address a specific crash bug. Xdebug 3.2 will only support PHP 8.0 and later.
PhpStorm's latest 2022.3 EAP #5 release now has support for Xdebug 3.2's return value debugging, as well as a bunch of other new features to make it easier to set up Xdebug.
I have also decided to no longer actively test on 32-bit platforms on CI, which also means I will no longer be providing 32-bit DLLs of Xdebug on Windows.
Xdebug Cloud
Xdebug Cloud is the Proxy As A Service platform to allow for debugging in more scenarios, where it is hard, or impossible, to have Xdebug make a connection to the IDE. It is continuing to operate as Beta release.
Previously Xdebug Cloud was only supported by PhpStorm, but the PHP Debug Adaptor for Visual Studio Code now also supports it.
Packages start at £49/month, and I have recently introduced a package for larger companies. This has a larger initial set of tokens, and discounted extra tokens.
If you want to be kept up to date with Xdebug Cloud, please sign up to the mailinglist, which I will use to send out an update not more than once a month.
Xdebug Videos
I have published two new videos:
I have started writing scripts for videos about Xdebug 3.2's features, and am also intending to make videos about "Running Xdebug in Production" and "Debugging Worker Tasks with xdebug_connect_to_client()".
You can find all previous videos on my YouTube channel.
Business Supporter Scheme and Funding
In August, September, and October, no new business supporters signed up.
If you, or your company, would also like to support Xdebug, head over to the support page!
Besides business support, I also maintain a Patreon page, a profile on GitHub sponsors, as well as an OpenCollective organisation.
Xdebug Update: July 2022
In this monthly update I explain what happened with Xdebug development in this past month. These are normally published on the first Tuesday on or after the 5th of each month.
Patreon and GitHub supporters will get it earlier, around the first of each month.
You can become a patron or support me through GitHub Sponsors. I am currently 46% towards my $2,500 per month goal. If you are leading a team or company, then it is also possible to support Xdebug through a subscription.
In July, I spend 18 hours on Xdebug, with 32 hours funded. I have been on holiday, so was not be able to dedicate as much time as I wanted to.
Xdebug 3.2
Most of the work that I did on Xdebug was related to release the first two alpha releases of Xdebug 3.2, which add support for PHP 8.2, and drops support for PHP 7.2, PHP 7.3, and PHP 7.4. I do not enjoy dropping support for older PHP versions, but the additional time it costs to maintain older versions, and have their configurations run on CI, is not really worth my time. Of course, users of PHP 7.2 through PHP 7.4 can continue to use Xdebug 3.1. The guidelines of which PHP versions Xdebug supports is outlined in the documentation.
Now that PHP 8.2 itself has approached beta state, it was time to release the first alphas of Xdebug 3.2 as well. In the near future, when PHP 8.2 comes into their Release Candidates cycle, I will release beta versions of Xdebug 3.2 as well, with a stable release when PHP 8.2.0 comes out.
These alphas and betas are an excellent opportunity to try out Xdebug 3.2, as well as PHP 8.2, to see whether your projects support the latest PHP version, and how Xdebug 3.2 interacts with that.
The main new features in Xdebug 3.2 can now also be tested. And these include:
-
Support for PHP 8.2.
-
The step debugger now introduces an extra step when returning from a function, so that you can inspect the return value. This is supported in the PHP Debug Adapter for Visual Studio Code, but not yet in PhpStorm, although there is a ticket.
-
You can now configure a list of headers to scan for through the xdebug.client_discovery_header setting, instead of only being able to set one. The documentation for this is yet to follow.
-
The step debugger now supports the pseudo hosts
xdebug://gateway
andxdebug://nameserver
as values to the xdebug.client_host setting. These pseudo-hosts instruct Xdebug to try to make a debugging connection to the default gateway and name server (as configured on Linux through/etc/resolv.conf
and friends) respectively. The documentation for this is yet to follow too.
I am intending to create a video for each of these new features for my YouTube channel.
Course
The first lesson is now nearly fully edited, with just the "tech talk" section to finish. Beyond that, I will need to work on create a web site to publish this course too, so that you can take it. The course will consist of many chapters, with some of them being free.
Xdebug Cloud
Xdebug Cloud is the Proxy As A Service platform to allow for debugging in more scenarios, where it is hard, or impossible, to have Xdebug make a connection to the IDE. It is continuing to operate as Beta release. Packages start at £49/month.
If you want to be kept up to date with Xdebug Cloud, please sign up to the mailinglist, which I will use to send out an update not more than once a month.
Xdebug Videos
I have published no new videos this month, but you can find all previous videos on my YouTube channel.
Business Supporter Scheme and Funding
In July, no new business supporters signed up.
If you, or your company, would also like to support Xdebug, head over to the support page!
Besides business support, I also maintain a Patreon page, a profile on GitHub sponsors, as well as an OpenCollective organisation.
Shortlink
This article has a short URL available: https://drck.me/xdebug-22jul-h82
Xdebug Update: June 2022
In this monthly update I explain what happened with Xdebug development in this past month. These are normally published on the first Tuesday on or after the 5th of each month.
Patreon and GitHub supporters will get it earlier, around the first of each month.
You can become a patron or support me through GitHub Sponsors. I am currently 46% towards my $2,500 per month goal. If you are leading a team or company, then it is also possible to support Xdebug through a subscription.
In June, I spend 25 hours on Xdebug, with 25 hours funded.
Development
Some of the time this month I spend with fixed a few old bugs, and some new ones with the new return value debugging that I spoke about last month.
This feature allows you to step into the "return value from function" phase, where PHP returns a value to the caller function. In this step, there will only be one variable available, which is the return value of that function.
This is now supported with version 1.27 of the PHP Debug Adapter for Visual Studio Code, if you'd like to try it out.
In this GIF you can see how this is useful with fluent interfaces:
![](/web/20221201155409im_/https://derickrethans.nl/images/content/return-value-fluent.gif)
PHP Version Support
The other half of my time I spend with adding support for PHP 8.2 for Xdebug 3.2, and dropping support for PHP 7.3 from this same branch. With that, I've also updated the version compatibility matrix.
I have also started on removing PHP 7.4 support for Xdebug 3.2 as well, so that it will only support PHP 8.0 and later. Users of older PHP versions will still be able to use Xdebug 3.1.
Course
I have spend no more time writing actual content for the course, but I have been collecting subjects to cover. If you have any suggestions of topics that the course should cover, please get in touch.
Xdebug Cloud
Xdebug Cloud is the Proxy As A Service platform to allow for debugging in more scenarios, where it is hard, or impossible, to have Xdebug make a connection to the IDE. It is continuing to operate as Beta release. Packages start at £49/month.
If you want to be kept up to date with Xdebug Cloud, please sign up to the mailinglist, which I will use to send out an update not more than once a month.
Xdebug Videos
I have published no new videos this month, but you can find all previous videos on my YouTube channel.
Business Supporter Scheme and Funding
In June, no new business supporters signed up.
If you, or your company, would also like to support Xdebug, head over to the support page!
Besides business support, I also maintain a Patreon page, a profile on GitHub sponsors, as well as an OpenCollective organisation.
Shortlink
This article has a short URL available: https://drck.me/xdebug-22jun-h6y
Shortlink
This article has a short URL available: https://drck.me/xdebug-22oct-hbo