When it comes to IDEs for working on PHP projects, I’ve been a relatively happy user of phpEclipse for several years. (Tried Zend Studio, but never managed to convince Zeev about how much it sucks). But when the guys in the office started switching over to Netbeans, I thought it would be interesting to take a look for myself.
I’ve been using several of the nightly builds on both Linux and OS X for about a month now, after reading on Planet PHP about the UI improvements vs Netbeans 6.5. Apart from one bizarre problem, in general the nightly builds have performed well; I haven’t come across any major bugs in the builds. I don’t care about integrated source control, deployment or Apache management. What I care about is a solid IDE that saves me time, and helps me quickly work with larger PHP projects where I’m not yet intimately familiar with the code.
- Performs well enough … keeps up with my typing.
- Code completion works more often than not.
- Doesn’t have the annoying lockups that Eclipse-based editors suffer when they decide to rebuild the project.
- Code refactoring (BIG time saver) worked every time I tried it.
- A real memory hog – my copy is using half a gig of RAM with just 4 editor tabs open. Ignore the memory usage that displayed inside Netbeans itself (which currently claims 99MB being used); it’s either selective in what it monitors or is just plain fubar.
- Doesn’t use any native controls on OS X; looks fugly and doesn’t mimic standard OS X dialog boxes or behaviour.
- Too many dialog boxes; UI could be simplified with in-place editing or just skipping the dialog box completely (a la phpEclipse).
- No shortage of time-wasting UI design, such as not auto-populating the Find in Projects search field.
- No context-sensitive help on F1.
- No bundled documentation for PHP itself.
- xdebug support no use to me. I was unable to debug a CLI script, and I was unable to debug a website unless I went through the website’s homepage first.
- phpUnit support no use to me either. To use phpUnit from inside Netbeans, it requires all the tests to be in a separate folder tree. I choose to keep my tests in the same folder as the code under test.
I did find one bizarre problem with it. I was editing code stored on a networked drive whilst on the train, and I went through a blackspot which caused the networked drive to become disconnected. Netbeans did the sensible thing of marking all the open files as read-only, but once I had re-attached the networked drive, I couldn’t then save these files at all. Fair enough, I thought – I’ll just open the file again in another tab and copy and paste my changes across. Sadly, Netbeans wouldn’t actually copy the content of the read-only files into the clipboard at all.
Overall, I feel that Netbeans is a good editor, and I’m still using it every day on Linux (but not on OS X). The IDE features that relate directly to code all appear solid enough. The issues with phpUnit aren’t a big deal for me, but it would be nice to see the xdebug support overhauled and made useful one day.
Just a shame they can’t do anything about the fact it uses Java … :)