When it comes to tools of trade it is much easier to justify commercial software that ends up paying for itself by providing better convenience and productivity.
Since PHP (more precisely WordPress) development had became my main occupation I began to look more actively for good software to use and ended up moving from NetBeans to PHPStorm – PHP (as well as HTML/CSS and JS) IDE that claims to focus on productivity.
What it does
PHPStorm is cross-platform IDE that runs on Java. It aims to provide highly productive development experience with focus on convenient interface, streamlined common operations and extensive set of features.
It does not feel much different at first, concept and most of panels/tolbars are very much like those in any other IDE. It’s not something that suddenly makes you productive, it is software that gives you such option if you spend effort to pursue it.
The cornerstone of productivity improvement is aptly named Productivity Guide available in menu under Help. It gives you table of features with breakdown how much use each one saw so far. It is continuously useful, both to jumpstart you on functionality initially and check what more can you use more in the long run.
I am big fan of incremental search and its implementation in PHPStorm is pretty much nirvana. After search hotkeys set in – searching for anything (from files to class methods) is extremely snappy. Much less time spent digging through folders and constructing search queries, much more time spent dealing with actual code.
Refactoring (boring? necessary!) has plenty of functionality related to it. It is especially impressive that you can command to globally rename something and get accurate preview of changes (not only in code but in non-code text as well) and selectively tweak which parts to refactor or skip.
PHPStorm comes with extensive out-of-the-box support of version control systems. Subversion implementation is very solid. Mercurial is bit more raw and I had no chance to use Git parts yet. It also supports FTP and SFTP deployments. You can even put everything together and commit to different repositories and upload results to site all in single action.
The concept of projects in PHPStorm is kind of weak. Projects are very folder-centric and basic stuff like renaming the thing is just not there. Projects also force separate windows (with tabs being for current project) and when you have three projects named www things get confusing fast.
I ended up constructing huge single project, combining multiple virtual hosts in Uniform Server with a lot of directories set to exclude and favorites lists acting as logical sub-projects. Worked out with some effort, but I miss more flexible and configurable projects in NetBeans.
The IDE is free for open source projects and educational institutions, I guess for such it is no-brainer to go for.
For the rest there is one month trial (no function limitations) and $100-$200 price tag (with occasional 50% off promotions) that gets you one year of major updates.
This is not the software to treat lightly. It is serious tool with considerable learning curve and it takes effort to get most use out of it.