Xdebug Update: August 2020
Another monthly update where I explain what happened with Xdebug development in this past month. These will be published on the first Tuesday after the 5th of each month. Patreon and GitHub supporters will get it earlier, on the first of each month. You can become a patron to support my work on Xdebug. If you are leading a team or company, then it is also possible to support Xdebug through a subscription.
In August, I worked on Xdebug for about 80 hours, with funding being around 70 hours. I worked mostly on the following things:
Xdebug 3
This month I focussed on making it easier to spot what Xdebug is doing, and how and why it is trying to connect to a debugging client, creating files, etc. For this I reworked Xdebug's logging mechanism. Instead of it just being used for the step debugger, the logging mechanism is now used for everything, and as part of that I've renamed xdebug.remote_log to xdebug.log. The log will contain all messages with levels that match the xdebug.log_level setting, but Xdebug will now also send errors through PHP's standard error mechanism. Errors include not being able to open a log file, to create a profile or trace file, or issues with making debugging connections.
The biggest new addition is the xdebug_info() function , which acts as a Xdebug specific phpinfo() and contains configuration information about Xdebug, but more importantly lists warnings and errors. Where possible, a link to the documentation is included as well, where I set up a new page that includes all the warning and error messages that Xdebug can generate. I have tried to add information about how a specific message is created, and what you can do to resolve the issue if possible.
Modes and Docker
Xdebug 3 introduces modes that can be configured with the xdebug.mode setting. This setting can only be changed in php.ini, and not in an .htaccess file or equivalent, nor in the script with ini_set. Because Docker and containers are a more common development set-up now, a method was needed to be able to change Xdebug's mode without have to rebuild the containers. Because of that, I added support for configuring the mode through a new environment variable, XDEBUG_MODE, too. This can be used when starting your Docker container, and/or in Compose.
PHP 8
Now PHP 8 is getting closer I have started to pay a little bit more attention to adding support for features, beyond making it compile. PHP 8 introduces named parameters, and also has a project for adding (and updating) names for internal functions. Xdebug's tracing and logging already showed variable names for user-defined functions, and I've now adding support of doing that for built-in functions and methods as well.
Showing argument names in Xdebug 2 is controlled through setting xdebug.collect_params to 4. In Xdebug 3 I have removed this setting altogether, and argument names are now always visible if possible.
My focus in September is to add support for the rest of PHP 8's features and capabilities as well.
Xdebug Cloud
The only time I spend in August on Xdebug Cloud is some further conversations with JetBrains. I am going to work on Xdebug Cloud when these conversations move along a little further.
If you want to be kept up to date with Xdebug Cloud, please sign up to the mailinglist I'll let you know as soon as something can be tried-out.
Business Supporter Scheme and Funding
In August, no new 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 and a profile on GitHub sponsors.
Life Line
I walked 8.4km in 1h21m38s
Merged pull request #1061
Pin PHPStan version
I walked 9.3km in 1h32m07s
I've just put the first event in my calendar for... 2027.
Looking forwards to seeing a match in the snooker Masters at Ally Pally!
Under the Waterloo station arches at Leake Street.
This specific area is set aside for grafity artists.
RE: https://phpc.social/@phpc_tv/115917245540319542
This means you can now follow @xdebug from Mastodon too!
I walked 9.0km in 1h30m55s
I hiked 18.2km in 3h39m00s
Created a bar and an events_venue; Deleted a pub
Updated a restaurant; Deleted a clothes shop
I walked 8.5km in 1h22m28s
I walked 5.0km in 47m19s
Added Trogolo, and fixed duplicated addresses
I've finished my first book of the year, The Basic Soldering Guide Handbook.
Now I "just" need to put the learned knowledge into practise.
I walked 1.8km in 19m57s
Merged pull request #1058
Sort Xdebug modes in particular order, change performance label
Calculate and print performance change
I walked 6.0km in 1h0m58s
I walked 1.1km in 10m19s
In times like this, it's actually fairly useful to be able to read a fair amount of Danish.
Merge branch 'v2022'
Go with 2022.16




Shortlink
This article has a short URL available: https://drck.me/xdebug-20aug-fpw