Debugging PHP scripts in Eclipse
Debugger are full-featured PHP debugger engine. They are interactive tools that allows
you to debug PHP scripts locally or remotely, from an IDE or from the console. There is 3
debugger on the market, XDEBUG (open source) , ZEND (closed source), DBG (commercial
but source code available) by luck all are free 🙂
I recommend you to develop with Eclipse PDT: The #Eclipse Foundation has released the 1.0
of the #Eclipse PHP Development Tools (PDT) project. #Eclipse PDT is a set of tools and
frameworks that enhance the productivity of developers using PHP, a popular, general-purpose
dynamic language that is especially suited for development of web applications and web services.
I have prepared a HowTo also for eclipse PDT, but it is still not ready for prime time.
Debugger Extension can be downloaded from Zend Downloads
|Zend debugger in #Eclipse also works for MySQL statements!|
Installing ZEND debugger in #Eclipse
The Zend Executable Debugger #Eclipse plugin adds PHP debugging capabilities to the #Eclipse environment.
Add the following remote location to the eclipse manager, even if you have eclipse PDT
ZEND debugging mysql statement
You’ll have to configured the PHP binary included with the ZEND debugger to be able to debug SQL queries. Search for a PHP.ini in your eclipse/plugins directory, you’ll find 2 files.
And add these line in one of these files according to your PHP version
extension_dir = "xampp_path/php/ext"
Installing Zend debugger server in XAMPP
Please note that the Zend Executable Debugger is not available from the #Eclipse PDT update Manager, so download ZEND debugger (Free) from Zend Downloads, you must extract the zip ZendDebugger-5.2.12-cygwin_nt-i386.zip.
In the zip file, you’ll see multiple directories
Use the version that match the one in XAMPP (you have note at chapter A, for me 5.2.3 so copy files from 5_2_x_comp) and copy the dll in
Open the file php.ini located at xampp_path\apache\bin\php.ini
and add these keys if they do not already exist:
;; Only Zend OR (!) XDebug
; this is to see output while debugging implicit_flush = On
Switch off all other debugger as it may conflict with Zen
Restart apache, check for proper operations by going to http://localhost
|Apache will crash if you have more than one key in php.ini with the name zend_extension_ts, so uncomment all other entries!|
Debugging PHP in #Eclipse PDT
Go to Debug dialog for creating and managing run configurations
- Choose as Server Debugger: Zend Debugger
- Choose as PHP Server: XAMPP
- File should point to the root of your #Joomla! installation ex: /PROD2/index.php because in XAMPP htdocs directory I have a subdirectory /PROD2 with #Joomla! 1.5 inside
- Remove the option Break at First Line
- Keep URL to Auto Generate
As seen in the screen shot below
Now click on button configure
- Give a Name, not important here, lets keep XAMPP
- Enter the root URL that points to the document root of this server, for me it is http://localhost/PROD2
Go to tab "Path Mapping"
- As Path on server enter E:\xampp\htdocs\PROD2
- Choose Path in Workspace /PROD2
You’re done, you can now set breakpoint and debug #Joomla! or your code easily
Installing #Joomla in #Eclipse
We will now install #Joomla 1.0.15 and #Joomla 1.5.1 (newest version at time of writing into eclipse)
Create two new PHP project in your workspace, one name joomla1.0.x the other joomla1.5.x for example
Attention: the root workspace must be located at xampp_path/htdocs
Setting Zend Debugger in #Eclipse PDT for #Joomla!
In the PHP perspective of eclipse, go to the menu debug