PHP Debugging

I have been experimenting setting up a PHP development environment. I have been trying on Windows, Linux (Ubuntu) and Mac OS X.

So far my favorite environment is on Mac OS X. I have tried a number of IDE's and debuggers as well. 

IDE's

  1. Eclipse with the PDT Add On
  2. The PDT version of Eclipse
  3. Aptana
  4. Zend
  5. Netbeans

 Debuggers

  1. Zend
  2. XDebug

So far the only environments that I could get running quickly were Zend and Netbeans. Eclipse is a nightmare of versions and capabilities. I could only get Eclipse working well on Windows. On Ubuntu I was able to get the debugger working once. Thats it, one session, then it never worked again.

I love the Zend tools and environment and it worked well everywhere I tried it, but it was beyond my budget. 

Aptana also worked best on Windows, on Mac OS X it was fragile and I never could get debugging to work. 

Netbeans worked first time, every time, every where. With one oddity, after several debugging sessions the debugger would refuse to connect. On every platform, I would end having to reboot to restore debugging, which would then work correctly for quite some time. I am sure I will discover that some process is hanging and there is a less intrusive way to clear the issue, but for now rebooting always works.

In a future post I will go over how exactly I set my environment up, for now I have decided to stay with OS X. By the way, I did NOT use MAMP or the Zend Server, I stuck with PHP compiled and built from source, as well as Apache and MySQL installed locally. I use Homebrew as a package manager for OS X. I tried PORT but did not like the fact I had to sudo all the time to use it, and it installed things in /opt which I was not used to. Homebrew does sandbox the apps but it is nice enough to symlink them to their "normal" locations usually in /usr/local.

This article is part of the GWB Archives. Original Author: Bob Porter

New on Geeks with Blogs

  • We Won The One Award I Actually Care About

    Full Scale made the Inc. 5000 for the fifth year straight, the 12th listing across my three companies. Here is why the one award you cannot buy is worth stopping for.

  • Your Customers Build the Features Now

    I let a tool I liked sit dead for a year rather than build the features I wanted. An MCP server meant I never had to, and your customers can do the same to your product.

  • Get the Size of a Directory in Linux the Easy Way

    du -sh for the quick answer, ncdu for the cleanup, df for the disk itself: every command for checking directory size in Linux, plus why du and df never agree.

  • Vim Search and Replace: The Ultimate Guide

    One :%s command replaces every match in a file before a find dialog would even open. The Vim substitute patterns worth the muscle memory: flags, ranges, capture groups, and multi-file edits.