Professional, zero budget PHP development tool chest

18. September 2006

Eclipse SDK

See, I wanted a Windows based full featured PHP software development environment without spending an arm and a leg.

Candidate #1, Xored TruStudio, fell dormant after a short period of intense development. Future aspects stay uncertain.

Candidate #2, ActiveState Komodo, gave me a hard time while I was figuring out how to set up remote debugging, and I never managed to get breakpoints to work.

Candidate #3, PHPEclipse, is what I found to work for me.

Here’s how:

  • Download all necessary components manually. Do not rely on the update manager automagic built into Eclipse. The Eclipse folk are having a hard time figuring out all the correct filenames for package dependencies, so there’s a not so slight chance that the update manager will yell at you at various occasions. You’ll need (at the time of this writing)
    • Eclipse SDK 3.1.2, the latest version 3.2 won’t work with PHPEclipse 1.1.8 yet.
    • Eclipse Web Tools in a version matching the core Eclipse SDK framework.
    • PHPEclipse. The Tool.
    • DBG, a debug extension for your version of PHP. Do not even try to employ this component for a non matching version of PHP, as it will fail either in subtle ways – or crash Apache.
    • A web server packaged with MySQL and PHP. Use XAMPP. Be careful to choose a package containing PHP in a version supported by the DBG extension.
    • Optional: Subclipse to use your Subversion repository within the Eclipse IDE.
    • Optional: Little helpers for text formatting, XPath and regular expressions. I chose Bastian Bergerhoff’s QuickREx and XPath-Explorer and AnyEdit by Andrei Loskutov.
  • Install the debugger by literally following these steps and verify the correctness with phpinfo(). XAMPP has a menu entry for that.
  • Set up your first project for debugging.

So I promised a “zero budget tool chest” in this post’s title. How wrong I was… It cost me hours to weed through the incompatibilities and interdependencies of all that jazz. But how good it felt when it finally worked. Aah, rewarding!