Become a Patron!

My Amazon wishlist can be found here.

Life Line

Xdebug Update: April 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 April, I spend 29 hours on Xdebug, with 27 hours funded.

Development

I continued my exploration of different set-ups that developers user, and have created a prototype branch that adds support for the "pseudo-host" xdebug://gateway which can be used with the xdebug.client_host setting instead of, and in addition to the Docker specific host.docker.internal. This pseudo-host automatically evaluates to the network gateway address in the container, which will then allow Xdebug to connect to an IDE on the host machine.

This value will work for:

  • PHP/Xdebug running in Docker on Linux, Windows, and macOS; with the IDE on the host.

  • PHP/Xdebug running in WSL, with the IDE on the (Windows) host.

  • PHP/Xdebug running in Docker in Ubuntu on WSL, with the (Linux) IDE running in WSL.

It will not work where network isolation is used, for example with the following set-ups:

  • PHP/Xdebug running in root-less Docker on Linux, IDE on (Linux) host

  • PHP/Xdebug running in Docker for Windows in WSL, with the Linux version of the IDE inside WSL.

I have not figured out how to do it will all different set-ups, so if you have extra information, or if I am still missing set-ups, feel free to comment on the Google Doc.

In the more complicated set-ups, it would likely be easier to use Xdebug Cloud as it has none of these networking complications.

Course

I have spend a fair amount of time developing the Xdebug course, with the first lesson now written and ready to be recorded. I have decided to include a "Tech Corner" with each lesson, to explain how Xdebug interacts with PHP to do the things that are explained in each lesson. Hopefully you'll find this interesting as well. It will also serve to reduce the bus factor.

For further lessons I have started to draft outlines, and they are in different states of completion.

If you want to make sure that the course covers specific tasks that you find hard to do, or what you would like explained, please drop me an email, or leave a comment.

Xdebug Recorder

I have been making little progress as I have been focused on developing the course. There is a persistent bug while creating the recording, which is hard to track down, as it only happens occasionally and does not seem to be easily reproducible.

You can follow the development in the recorder branch.

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 one new video this month:

You can find all previous videoes on my YouTube channel.

Business Supporter Scheme and Funding

In April, 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 and a profile on GitHub sponsors.

Shortlink

This article has a short URL available: https://drck.me/xdebug-22apr-h4g

Comments

XDebug completely changed my life and allowed me to go from being a complete, clueless novice to being able to create some of my own custom WordPress plugins and plugin integrations. I really hope that other novices can get it set up so that they can start viewing this all with some degree of logic rather than an impenetrable black box.

But the most difficult part for any novice is getting it set up. I spent a huge amount of time trying to figure out how to get Xdebug set up. I failed with most Windows-based local dev environments, though Local had v2 built-in. Eventually I ended up just installing it on my Ubuntu VPS server, and then connecting to it via SSH with VS Code. That took a while to figure out as well.

So, it seems to me, that any initial lessons should include details on how to install and connect to xdebug with various setups. It could even just be a crowdsourced document with instructions per setup (local vs remote, OS, IDE choice, etc...). I have had by far the most success with the Wizard, rather than the repo packages - perhaps it is because I have an OpenLiteSpeed server with lsphp?

I hope this is helpful and feel free to contact me if you want any more input.

Hi,

You got a very well-deserved mention on the PHP Ugly Podcast.

It would be great if your course could include working with XDebug with local Docker and IntelliJ.

Thanks!

Add Comment

Name:
Email:

Will not be posted. Please leave empty instead of filling in garbage though!
Comment:

Please follow the reStructured Text format. Do not use the comment form to report issues in software, use the relevant issue tracker. I will not answer them here.


All comments are moderated