PHP IDEs: Eclipse, Zend and Komodo

I have finally gotten around to seriously testing out some different IDE (Integrated Development Environment) for my PHP coding. I currently use jEdit as an all-around editor and I love it. It has PHP parsing (but no fancy autocomplete stuff), FTP, project management, snippets and some really good XML plugins but the big hangup I have with it is that, for some reason I can not discern, it is totally jacked up on my Dell laptop when no AC power is plugged in. It works fine otherwise but I do a lot of coding on the train to and from work and I can't use jEdit on battery power because it ends up running slower than molassas uphill in winter. Total bummer.

So, I am currently evaluating Zend Studio 5.2.0, Komodo 3.5 and Eclipse. I need something that is cross-platform and will run reasonably fast on all of my machines. I use Ubuntu Linux at home and WinXP at work and I'm considering getting an Intel MacBook at some point and triple-booting it. ( I realize Java apps are not the fastest but they have the great plus of being cross-platform so I am only dealing with one interface on multiple meachines, hence "reasonably fast".) Other than that I want something that knows PHP, XHTML and CSS and has FTP support. I don't have huge technical requirements and so most of the comparison is based on nit-picky likes and dislikes.

So far Eclipse 3.2 is the front runner mainly because it meets my basic requirements and is free. It isn't my favorite environment but I am getting used to it. I find the Eclipse site very confusing and it took a while to understand the basic concept of the main framework and finding the components needed to do what I particularly want - it is just not a model I have used before. There are two plugins that cover what I need that are still really betas and I think they will only get better as things move forward. I am using the PHP IDE plugin from Zend and the Aptana plugin which is specifically for HTML, CSS and Javascript. The main things about Eclipse that bug me are 1) no word wrap (!?) 2) every new file I create has to be in a project folder. Really annoying since I don't always work in "projects" nor do I want to stop and create one when I'm in the middle of coding. 3) the FTP is not live editing. You have to create a local project and sync your files. Not huge but certainly not as nice as connect, save the file, refresh browser and done. On the other hand it does actually do diffs and syncing even for FTP (and SFTP), as well as standard CVS and SVN. One thing I like about Eclipse is the Tasks list that finds your (configurable) task tags like TODO and FIXME in the code and creates a list in a view for you.

Both Zend Suite and Komodo are both $300. Not cheap. For $300 I want a back massage too. Yes, there are cheaper versions of each but Komodo's cheapy ($30) is not for business use and Zend's cheapy ($100) doesn't have FTP (or SVN/CVS for that matter). Now, my daytime employer is more than willing to buy me the tools I need to do my work but we are a small department and we have one pie to buy things from so I try to not be greedy, especially if I don't really need it. Zend and Komodo meet my requirements and are both capable IDEs for what I want to do. So for $300 here's what I like and don't like about them. Please note that I have not "learned" these IDEs. This is all first impression. I am sure they can do lots of things the way I want but a large part of this is finding out which is most intuitive and comfortable for me from the get-go. Knowing that I have coded with jEdit for a long time and have gotten used to that interface is important as well since features that work like they do in jEdit (as I have customized it) will be more "intuitive" for me.

Zend is purdier and I prefer the pane expand/collapse over Komodo's (it is actually very much like jEdit's). I also prefer Zend for its file browser and the fact that I can have Zend automatically reconnect and add my FTP servers to it. Some weak points for Zend are that the editor tabs are on the bottom and not movable (I keep looking to the top to see which files are open and then feel lost and have to look down) whereas Komodo has them at the top where I'm used to. Komodo also starts out of the box with Tutorials to help get used to it. I couldn't get the debugger to work though even though I went through the little wizard to set up my local PHP for it. The local debugger in Zend worked with no issues for me. I don't know boo about debuggers, never having used one before so Zend really wins here. One thing I like about Komodo is when creating a new file it will ask me what kind of file template I want to use. Its not a huge deal for php files but very nice for XHTML. I also really like the toolbox pane that lets me keep my own selection of snippets and templates in easy reach (which is very much like and easier to use than the Clipper in jEdit).

If I could combine the things I like about them both, I might be willing to pay $300. I'm still playing with them during the trial period so we'll see if either of them becomes so much more useful than Eclipse that I'm willing to pony up the cash.

Comments

Nice to see a good review of different ide's. Komodo 4 beta 1 (not out yet, we're still in alpha) will auto configure PHP debugging without user intervention in most cases. That can be a little tricky sometimes since there are soo many ways to build/configure PHP, and we use the PHP on your system. There are also lots of very cool new features in K4, hope you check that out during your evaluation.

Sorry if this is not really related to your post topic, but you mentioned that you use jedit? I also like it because of the code coloring and all the useful plug ins you can get for it, but the problem I'm having with it is when I press "ctrl+f" (find) it gives me some error, have you ever experienced that with your jedit, and if so, do you know how to fix it? I would really appreciate it if you can shed any light on that "find" error issue, it will save me a lot of time so I don't have to manually go through my css files and search for the identifiers I need...

Hi, Nice review. I do like the way you write! Anything less dated on IDEs? We're a small group of library systems types who are inheriting more and more open sorces stuff to 'tweak', and want to settle on a common IDE. Wondering what you settled on, and why...

Thanks

don

I don't have any more recent reviews myself. I have since moved on to a Mac and I rarely use a full-blown IDE anymore. I mostly use Textmate which is a Mac only editor. In terms of IDEs the newer Komodo is really quite nice and so it is the one I now have installed. Zend didn't work on the Intel Macs initially and Komodo fit the bill. I've never even bothered to look at the newest Zend. Eclipse is getting there slowly but surely and has some nice version control integration but there are enough things about it that still annoy me that I've passed on it again.

I like your writing style and I have added your site to my bookmarks, please keep posting, thanks.

Zend was the IDE of choice for PHP for a very long time. The original platform was built in Java, so it had some performance issues every so often, but so many cool things that made you tolerate it slowing down a bit. The awesome debug tools also made it stand out as the clear winner.

Then came this awful idea to integrate it into (what I consider) one of the worst IDE platforms ever created ... eclipse. As a back-up to my statement, I have coded in over 25 languages, used every IDE known to man-kind including one my favorites in Scite, Visual Studio, VI ... name it. I use IDE's to help me code faster, debug better, and just make my life easier. Thus, once Zend moved to eclipse, I stopped my Zend subscription. In fact, I was even on the alpha testing group for that move and hated every moment of my life while working in eclipse (which I still think is a memory pig, even though its gotten a little better).

I then tried Komodo. It is not the original, php-dedicated Zend, but its damn close. The open source community is making it better every day, and version 4.4 is just rock solid. Its integrated directly with SVN and others, and easily configurable to work with XDEBUG. While I still miss ctrl-click on a function to go to its declaration, these are things I am more than willing to give up for a stable IDE that runs fast and is fully configurable.

If anyone really wants to figure this out for themselves, go download eclipse and use it for 2 weeks ... it is free. I dare anyone to actually say they enjoy eclipse (outside of pure java developers). If you have never used it, don't read a manual, just try and figure it out. After 1 hour of beating your head against the wall you will learn that everything MUST be a project. Now try and debug. Sure you can do it, but try doing it easily.

In short, if you are an eclipse fan, go with zend and continue on your path. If you are unfamiliar with eclipse, I highly suggest not bothering with Zend and play with Komodo (or PhpEdit, Scite, etc.). They behave like editors and IDEs everyone outside of the eclipse community is used to.

Have you tried Nusphere's PhpEd IDE? I'm wondering how it might compare to Komodo.

Cheers!

Eclipse is not user friendly and I am a pure Java developer. I was planning on evaluating Zend Studio until I saw that they moved to the eclipse platform. So far Komodo 4.4 does everything I need and then some. I think I'm going to pony up the bills to buy it.

I am quite pleased with eclipse/PHP/HTML and it has not given me a reason to go looking elsewhere. I come from a background using Visual Studio for many years. I am having way more difficulty trying to get used to the new menu bar in Microsoft Office 2007. Eclipse has been user friendly enough that I haven't read the manual nor had to make any config changes to use it (except for uncommenting CURL in a php.ini file). I don't feel like I'm sacrificing quality becuase I did not cough up $300 bucks for a retail product.

My jEdit has been suffering from serious jacked-up-ness, as well. I've got a Dell Inspiron E1705 w/ Nvidia GeForce Go 7900 GS. I haven't noticed peculiarities w/ the power source (I'm usually plugged-in). But, I believe the issue for me was video card incompatibilities with Java. And jEdit seems more incompatible than other Java progs I have. I DL'd the latest nvidia driver (179.48_notebook_winxp_32bit_beta.exe) and that helped (it doesn't crash anymore). But, it still has trouble rendering text. Perhaps it's the newer versions of jEdit that have been giving us trouble? I'd like to solve this because jEdit makes one killer lightweight editor.

Komodo is the best. I used eclipse, aptana, zend but only Komodo convinced me to stop looking for an IDE. I use the Edit, and plan to buy the IDE.
Cheers.

I put together a Komodo vs. Eclipse feature comparison table at wiki.dandascalescu.com/reviews/software/komodo_vs_eclipse, with a focus on Perl development.

I have used WeBuilder for a few years and love it, but it is not a fully blown IDE, rather a superb code editor. I decided to give Eclipse a shot because a colleague suggested its PHP support was better than WeBuilder.
I have used it for 2 weeks now and really like it. Its PHP support (using PDT) is really good and I like that it has Drupal function auto complete and function definitions which is really handy when building Drupal modules.

WeBuilder is much much better for HTML & CSS though, but then it beats the pants of anything that I have tried for that. So if I am writing a lot of HTML/CSS, then I use WeBuilder.

If I'm doing mainly PHP, I use Eclipse PDT.

I don't like having to use 2, but there doesn't seem to be a perfect IDE yet.

I have used Visual Studio for a .net project and its HTML/CSS support is dreadful. So dreadful that I have to write it in Webuilder and then move over to Visual Studio for the asp stuff.

I probably should try Komodo.

Well I've coded in java/vb/C/ksh/csh/plsql/4gl for a long time and i have done some php web-sites but its been a couple years.

Anyhow as i returned to become a serious php/mysql developer I found that while trying to ramp up in php/mysql that the Eclipse IDE was very confusing and just added drastically to the learning curve... I'm sure it has its own philosophy but I just wanted a clean functioning intellisense code ide that would help me create clean code, store the files where i wanted them... very good intellisense... and solid testing/debugging capabilities.

Big turn-off was that eclipse did not work out of the box with testing... it kept cryptically saying i needed to make configuration changes to the php.ini and many other things... this and the fact that i didn't really immediately like the workspace/project management concepts the way they were implemented in this tool... was the reason my search continued.

I landed on phpedit for Windows only... I know its only a windows app... but that has its pluses as well. Anyhow i was able to do the following with a ZERO learning curve and it didn't interfere with my php ramp-up...

1. Open the app...
2. Create a php class file...
3. Test and Debug the class file using php script or inside web page...
4. Adjust the intellisense settings to my likings...
**** ALL OF THIS WITHOUT ANY ISSUES ****

So while i realize that eclipse may be nice down the road and worth a second look once i've mastered the php language and concepts...

I think for a beginner or someone switching from another language or even a non-corporate freelancer working with small teams, that this tool actually adds to the confusion when one wants to minimize the confusion.

Me thinks everybody with some Visual Studio experiences should give Eclipse a try. In Visual Studio, you also need to put everything into a Project (or even a Solution which can contain several Projects), so Visual Studio programmers will feel very fast at home.

For others, it might take some time getting used to the Project approach, but once understood and embraced I don't think that there will be a reason to look for a commercial IDE.

NetBeans is also worth having a look. It's free and might appeal to those who cannot make friends with Eclipse.