Become a Patron!

My Amazon wishlist can be found here.

Life Line

Jobs, part I

For the people who are wondering what I'm currently working on a small update: At the moment I'm working on a PHP IDE in Bolzano, Italy with Maguma GmbH. More specifically I'm developing and implementing a common Debugger Protocol, which I developed together with Shane Caraveo from Active State. This new protocol is meant to be a powerfull cross-language protocol with which IDEs can communicate with different debug engines, such as Xdebug, written by myself, but also with the engines from Active State for Perl, Python and TCL.

The protocol uses a command line syntax for sending commands to the debug engine, and the reply from the debug engine to the IDE is in an XML format. For a full description of this open protocol, see the draft. The protocol is not yet available in Xdebug, but will be in version 2.0.0 which is under development. The main features will be this new protocol, enhanced with support for getting profiling information from debug engine to the IDE.

In Maguma Studio 2 this new protocol will be used to communicate with Xdebug, which will replace the current debugger engine DBG. Studio 2 is an in C++ rewritten PHP IDE which will support tight integration with a cache, debugger and encoder. It will also feature a plugin interface so that third party modules can be made available. Besides C++ plugins can also be written Python, for which the IDE will also have support. Even some of the distributed core modules will be written in Python, because of the greater stability and easier development.


This article has a short URL available:


If I could suggest a feature for XDebug would be to dump current variable scope for the function / method that trigger an error.

Sounds like a good idea, I'll put it on the TODO list.

It's implemented in CVS now.

Add Comment


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

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