bye Aptana, hello phpStorm

During the last weeks I've been playing (or working actually) with phpStorm. For those who haven't heard about this, phpStorm (or WebIDE) is an awesome IDE for web developers, it has support for quite a few languages, good deployment options and version control support (SVN, GIT, CVS).
I consider myself one of the now disappointed users of Aptana who have seen how their team started building an incredible IDE for web development that supports quite a few technologies to go shifting towards Rails development. It first started by dropping the support of their own php plugin in favor of PDT (which can be really good) but this plugin has almost no integration with Aptana, all appearance options are separate from the rest.
Now to make it even worse, they release RadRails 3 (Aptana Studio 3) and make everyone scratch their heads. http://aptana.com/ features RadRails, while http://www.aptana.org/ features Aptana Studio. But they also have http://www.radrails.org/ !!
It's time to move on...
Enters phpStorm
To be honest, I never heard of phpStorm or WebIDE before. The only difference between those two is that phpStorm comes with more PHP specific plugins. I'm not sure why they decided to split the project in two but it's not that bad. In my case I stick to phpStorm.
There are too many good things to say about this IDE to fit in one post but I will try list the ones I most like.
Projects
To create one, just open a "directory" and next time you want to open a directory you will see which ones are projects.

Color picker
Helps when making a CSS file to know the actual color you are using, and if you click the color you can access a color picker. Really useful to me.
![]()


Color picker comes up when clicking on the color square
Code completion and Zen-Coding
Pressing Control+Space brings the code completion drop down that is really well implemented. It works with PHP, CSS (even files in the project) and Javascript. Also ZenCoding is good for building HTML and it actually works with XML too.
![]()

File completion

Code completion
Deployment
Here's one of the killer features for me. I usually have to work on multiple websites and upload through FTP (or SFTP) so being able to create a connection and map resources is ideal. The best part is that you can have multiple projects using one connection but with different mapping. Makes sense!
You can also use VCS like SVN, GIT and CVS and while I haven't tried it yet it's good to see they are already considering different options.

Access types

Mapping options are project based, but connections are global.
Some customization
While I overall like the default settings, I missed the "Upload to remote server" shortcut from Aptana. Here's a quick fix for that:
- Go to File > Settings > Keymap
- search for "upload" and then create a key.
Another thing that I don't like is that when you upload the file it tries to preserve the timestamp which on most of my servers it doesn't work. So I prefer to disable the option.
- File > Settings > Deployment > Options
- Uncheck Preserve Timestamps
Closing comments
I've been working with this IDE for the last 2 weeks, and while it's been an excellent experience I have to mentions the things I don't like. And I hope they get worked in future versions.
- Fragmentation with WebIDE and phpStorm. Just make one IDE
- CSS indentation follows the very first ruleset you create, meaning that making a tree-like structure is annoying.
- Remote server operations and UI are still weak. Needs a lot of improvements.
- Log window, for FTP, SFTP, GIT, etc.
I strongly recommend giving this IDE a try, because of the best things it has is that they have weekly releases, and usually the newer version has tons of improvements over the previous one.
phpStorm Blog - blogs.jetbrains.com/webide/
phpStorm website - www.jetbrains.com/phpstorm/index.html
latest posts
About
Hi, I'm Ivan Soto Fernandez (yes, two last names). I'm a chilean web developer living in Edmonton, Canada. I'm also an anime fan, Gundams lover and gamer. Welcome to my blog.
You can read more about me or follow me on Twitter or any of the following social websites.