Lately I have been trying out several IDE solutions in order to improve my development productivity. Working on large projects made me realize that I was probably not using the right tools. Over the past year I have tried three in particular and I've got a clear winner here. So clear in fact that I thought I should write about it.
- Sublime Text (multi-platform, loaded with plugins), $70
- phpDesigner (Windows only), 29€
- PhpStorm (multi-platform), $99
They all have trial periods so you are free to try them out for a limited time. Also please bear in mind that I am only working on PHP projects, so if that is not the case for you, you might find this article irrelevant.
I was originally using Notepad++ as code editor, but when I started working on larger projects I quickly felt the need for something more. I was recommended Sublime Text by a friend. Let me list the pros and cons of the solution before discussing further.
- Fully multi-platform, though I have only been using the Windows version
- Lots of plugins to extend functionality
- Very lightweight and responsive
- Default functionality is somewhat feeble (you have to resort to plugins)
- Steep learning curve, documentation clearly lacking, terrible support even for paid users
- Can be unstable, plugins and application sometimes crash
It took me weeks to really finalize my Sublime Text set up: first you need to know that the program doesn't do much if don't install plugins. And there is no actual GUI for configuring the program: all the program and plugin settings have to be written in text format in the editor (and guess what? you will not find an up-to-date list of all the settings that can be configured). Then you realize installing and managing plugins is pretty easy and cool, so you install tons of them, turning Sublime Text into a pretty good IDE. The thing is, some of the plugins that I've used have been upgraded over time and changed the behavior of the application (I'm talking about SublimeCodeIntel specifically, but there are other examples). In addition, some features just don't work properly at all -- code folding, indenting -- and some things are just downright missing (ie. automatic indenting, full code folding, ...) and aren't available as plugins. On top of that, it is nearly impossible to get support. There is a message board available but nobody really cares at all and messages are left unanswered. In conclusion I would only recommend Sublime Text if you are working on big projects with tons of files open (because it is really lightweight) as long as you don't need extensive functionality.
I found out about phpDesigner accidentally during a Google Search. It looked nice and appeared to be free (official website states "Free Download"), but it actually isn't. You even have to pay for upgrades. That isn't usually a big problem because when an application really improves your productivity, it is worth purchasing. I had a good run with phpDesigner but I gave up for several reasons. Let me list the pros and cons.
- Easy to install and use, fast learning curve
- Comes with tons of power features (intelligent syntax highlighting, autocompletion, ...)
- Relatively lightweight
- Windows only, other platforms are unsupported
- The GUI can be cumbersome and annoying
- Doesn't work well on high DPI settings
When I first installed this program, I thought: wow, it looks completely broken. Toolbars looked terrible, UI fonts were too small or too large, and so on. I quickly realized that this was due to the DPI settings I was using on Windows (150% -- I have a high res monitor). When I switched back to 100%, the program looked perfectly fine. I reported the issue to the developer about a year ago and he replied nicely, but the program was never updated since. It's a shame because it has potential. There are some particularly useful features such as a full fledged code explorer, very relevant code completion, code reformatting tools and many more. In the end, I gave up on it because of the UI issues. I hope it gets fixed in the future, but I wouldn't be too hopeful. In conclusion, I would recommend phpDesigner if you're a Windows user with regular OS settings and conditions, but if you are the kind of person who requires very specific work environment settings I think you might be turned off by the UI.
I recently stumbled upon a survey of the best PHP IDE (2014 edition) showing overwhelming results in favor of PhpStorm. Strangely I had never heard the name before, and it was not for lack of Googling! So I looked into it, downloaded the trial version and... well, what a shock this has been. I could not dream of a better IDE. It is absolutely perfects for my needs.
- It has every feature you could dream of, and more
- Extremely configurable, in a very easy way
- Excellent and friendly user interface
- Fully multiplatform
- Somewhat heavy, if you compare it to Sublime Text
- I really can't find another con
After downloading the program, I was surprised to see that they have a very nicely written guide that helps you go through the first steps of installing and configuring the IDE. It answered pretty much every question I had, right off the bat. It took me a few minutes to figure out how to fully and properly import my existing projects into the application. Then I spent hours configuring the IDE -- not because I had to, but because I enjoyed it! They actually have a theme download website (themes are easy to install), a thousand settings which can either be language-specific or global, at the end of the day you can really have it the way you want. In addition, there is a nice little community of users which makes it easy to get help. After a few days of use, I ended up purchasing the license. No regrets at all, that's a well spent $99. In conclusion, I would recommend PhpStorm if you're after a powerful IDE and have a decent computer (since it's not as lightweight as Sublime Text, for example).
If you've read the article fully, you'll probably have understood that my personal favorite is PhpStorm by far!