In my last post I looked at some different IDE/editors for PHP. The feedback was overwhelming, I did not expect so much interest, which leads me to believe I’m not the only one in search for the holy grail.

I already gave a brief review of NetBeans, but a new version 6.9 Beta came out after I tested it, so I decided to take it for a spin. Over the last two weeks I’ve been using NetBeans as my main IDE at work, continue reading to see the verdict.

NetBeans 6.9 looks very promising. In it’s current state I’m almost sure my quest is over already – at least I will choose it over Eclipse PDT for now.

Out of the box NetBeans comes with all the features you would expect from a modern IDE. It has very good and quick code completion, good file navigation, very nice HTML/CSS support, Subversion integration and much more. Basically – everything I need except for Git support, but not many IDE’s fully support Git yet anyway, so I’m fine doing it in the terminal.

I was surprised to see that XDebug support was working almost out of the box – it even gave detailed instructions on how to set things up, which was quite nice.

The autocomplete is spot on. It’s very fast even with large projects, which is where Eclipse PDT keeps me hanging, waiting several seconds before giving me hints. It also includes information from PHPDoc blocks, which is very nice when working with larger frameworks like Zend Framework. The only time I experience some latency is completion on class names when initiating objects. However I have experienced some errors with the code completion. It seems to crash a few times if you try to complete an object inside a method call, but I have not been able to find a stable way to reproduce it. I’m sure the NetBeans team will figure it out before 6.9 is released.

NetBeans still has some strange things when creating a new project. If you plan on checking out source from SVN which does not contain a NetBeans project, you will spend some time wondering what the heck happend to the files you just checked out. Eventually you get to work, but the next time you need to checkout a project you have forgotten all about it. I can live with this, besides it’s only until I get all my projects to contain the NetBeans files, then there is no problems at all.

The new beta also fixes a very annoying issue for me, the ability to change files outside the IDE. I use Doctrine alot, and when running scripts from the terminal to create models, this just needs to work. NetBeans 6.8 did not work for me, but in 6.9 this all works perfectly. They even added a “Scan for external changes” in the “Source” menu. The only thing I could wish for is to add a shortcut for this feature.

NetBeans enables you to customize your code style, where to put braces, spaces, tabs as spaces etc. I see this feature in a lot of editors, but it’s a nice feature to have. One note about this, is that I only seem to be able to specify for PHP. I’d like to either have those rules applied to Javascript as well, right now it just seems to ignore my settings.

Editing HTML, CSS and Javascript is really nice. They added some powerful tools, among them is the ability to refactor inline CSS to external CSS files. I have a very bad habit of writing a lot of inline styles, now I can easily refactor this to external files. Simply mark the HTML -> Right click -> Refactor -> Extract Inlined Style. Choose your file and preview the changes, you can see the changes to both the HTML and CSS files. This feature really, really rocks!

One thing to remember is that NetBeans 6.9 is still in beta. This means there will be some bugs and random crashes. I have experienced a few crashed, but nothing major and most important – no work was lost.

Overall I would say NetBeans 6.9 looks very, very good. It has some bugs and downsides, but as I concluded in my last post, it really comes down to personal preference and which downsides you can live with. For me, NetBeans seems like a huge improvement over Eclipse PDT. I will continue to use NetBeans at work, at home I will look into some other interesting IDE’s including Komodo and JetBrains PHPStorm.