I've been using PhpStorm for a few years now. After going through several time-wasting periods of trying out every IDE I could get my hands on to see what I liked, I ended up and have stayed with PhpStorm because it is hands down the most feature-full, fast, stable and up-to-date IDE for PHP (and HTML/JS!) development.
It also does not hurt that they're going on a Vagrant rampage and have been showing off my app, https://puphpet.com :)
First time I see this tool. Looks really sweet! Only things that are missing for my usage is ppa:ondrej/php5 for latest php and Percona instead of MySQL with an option to push in custom my.cnf from within configuring a vm, if that's possible.
If you choose Ubuntu and 5.4/5.5 you're going to use Ondrej's repo.
The problem with that is that Ondrej's 5.5 repo comes with Apache 2.4+ and the Apache Puppet module I'm using only supports up to Apache 2.2 - so Ubuntu + Apache + PHP 5.5 will not work right now, but Nginx will.
Sounds good in my case, because I use php-fpm with nginx anyways! Great work. By using MySQL usage for dev is pretty much the same as with Percona, it would've been nicer though to have Percona (or MariaDB if other people use that) instead of actual MySQL though, because you never know if there will be some incompatibility issues.
My one year subscription expires in December, so I was really hoping they'd get version 7 out before it runs out.
My favorite feature is the static code analysis that allows for autocomplete but also shows errors in the code, like functions not available in a class, unused variables, etc. When I use PHPStorm I always find problems in my co-workers code that wouldn't be obvious without code analysis.
Just as I was going to install PhpStorm 6 on my new machine at work, cool.
Most people in my team are not convinced PhpStorm brings anything valuable compared to NetBeans, Eclipse, Sublime2 or even vim. Maybe I will try once again with version 7 :)
I only briefly used Eclipse, so I can't comment on that one. I used NetBeans for a few months though. PHPStorm has much superior refactoring, it beats NB hands down. This by itself was for me enough of a reason to switch.
I also had some issues with NetBeans being inresponsive, or some functionalities breaking for no clear reason (like "go to definition" wouldn't work anymore) etc.
My working copy was on a mounted drive - which sucks, but it didn't depend on me - and whenever NB had a problem saving some file, it would make it look as if the file was saved anyway, and I ended up losing changes.
On the top of that, its SVN integration (I've switched to Git since, but I never looked back at NetBeans, so I can't compare) was ridiculously slow.
I can't remember exactly anymore what NetBeans has and has not, anyway PHPStorm allows you to generate getters and setters, or to extract a fragment of code into a separate method - the latter one is extremely helpful for refactoring poorly written spaghetti code. This function is quite intelligent, so it takes care of all the local variables and creates a proper method signature (so that the newly created method would take all the variables used by the code as arguments), etc.
When I was trying to promote PhpStorm to replace NetBeans, after I told about the code formatting options, a colleague told me it was possible with NetBeans...
You had to select Formatting in a dropdown to display those options (yet, they were limited in comparison with PhpStorm)...
After that day I forgot that NetBeans exist, seriously, a dropdown that changes the UI? What did the developers have in their minds?
I'm switching a lot of branches and Eclipse used to freeze for a few minutes until it indexed the directory. That doesn't happen in phpStorm. That's only one of the many reasons to use it :-)
I can refactor a chunk of messy script into a separate method with PHPStorm, it's just one command. Good luck with Sublime :) IDEs were invented for a reason. To each his own, but I lost count of how many times I fixed bugs (of the sort that I could broadly classify as typos) made by colleagues who choose to code in Sublime, Commodo, Notepad++ and the like.
I really like Sublime when I need to search for something in a code base though. It also has very pleasant, slick feeling to it.
Actually PHPStorm is so good with keyboard shortcuts that it offers a few default sets ("keymaps") out of the box to choose from.
Eg. I'm used to Visual Studio shortcuts scheme - I can switch to it straight away (IDE Settings -> Keymap -> Keymaps). There's also Emacs, NetBeans, Eclipse etc. So you don't even need adjusting your habits or wasting time for manual customization.
I don't want to sell you this stuff (not associated with JetBrains in any way), but it's solid, so why make bones about it
As well as being able to set shortcuts for anything you access regularly that doesn't have a default pre-installed, every command can be accessed via one keyboard shortcut (Command + Shift + A on the Mac). You just hit that shortcut, type the first few characters of the command you're interested in, then hit enter.
I switched to PhpStorm from a regular text editor and would not go back.
completely reverted for me. Whenever i try to work with vim/sublime on larger projects i feel so crippled without the advanced debugging and refactoring features that i will go back to an IDE. With PhpStorm i didnt feel the urge to change again yet though ;)
PHPStorm is more focused and coherent and includes some features that IDEA + PHP plugin doesn't, IMO. If I were a full-time PHP developer, I'd use PHPStorm, but for my occasional PHP needs, IDEA + PHP plugin is ideal.
PyCharm is much the same - for full-time Python development, I'd prefer it to IDEA + plugin.
We are continuously working on improving it and fonts are indeed better now, however, there are a lot of things we can't do something about because of JDK for Linux.
You can make java programs like all JetBrains IDEs use the OS native font rendering, just add the following snippet to /etc/profile.d/jre.sh and source or relogin to take effect.
This is the reason that I cannot use phpstorm on linux. I was a long term phpstorm user on windows, but when I swapped to linux I just couldn't stand those fonts. I now dread opening up phpstorm.
I'm a huge fan of PhpStorm. However, I'm wondering what's the purpose of having vagrant in an IDE?
Vagrant is easy to work already, just 'vagrant up' and you're away. What problem does the IDE solve? And looking at the interface, the 'halt' button is too close to the 'destroy' button. Might have an accidental click there...
It would be cool if they had an interface such as WAMP Server, where you can select the php versions, php extensions, start / stop services, log files, v-host configs, etc, all from one menu. Now that would be very useful.
My only problem with terminal and vagrant built into the IDE, is I have multiple monitors and enjoy separation. I usually fullscreen my IDE/editor in one monitor, maximizing each file's viewport to the best I can, and then have multiple terminals on another monitor.
Can I "pop-out" the terminal/vagrant windows in this IDE and put them on another monitor?
PyCharm Community Edition does not include all the web features - those available in Professional edition (and other features too). That would be quite strange to have PhpStorm Community Edition without support for web technologies (without PHP too)
Anyone here used PhpEd and then switched to PhpStorm in the last few years?
I've really enjoyed using PhpEd myself, but sometimes it gets annoying that it has its own debugger (not XDebug) and that seems to cause issues with typical tools like PHPUnit and some of the features they have (like code coverage tests).
I switched to Intellij from PhpED a few years ago for a few reasons.
- Better support. Sometimes PhpEd would rarely give updates about what they were working on or what they were doing. My subscription ran out and I was not going to take a chance on "what ifs" when Intellij had all features I needed.
- More features. There were and probably still are lots of things PhpStorm/Intellij has that PhpEd does not.
- Intellij has support for more languages and PHP was only part of the work I did and even less of it now.
- Better JavaScript support (support for lots of JS frameworks built in. Missing a library locally for JS? It tells you. Also syntax highlight and error/lint check support for TypeScript and CoffeeScript
PhpEd was nice and I'm sure it's gotten better, but it at the time, it seemed like they were always a step or two behind the PHP and HTML5 updates so you could never count on using the latest features.
One advantage PhpEd always had on Intellij is that PhpEd is native (delphi code). Thus PhpEd always started up faster and there was a little less latency when clicking on menus or something, but it's not that noticeable and Intellij performs better than other Java Apps.
Thanks for the reply! For a while there (I started using PhpEd in 2008 or so) the updates were coming fairly slowly but they have seemed to ramp up lately which has been nice (version 11 of PhpEd seems to be due out fairly soon but I'm not sure which features will be coming).
The main open source project I work with (Joomla) seems to use PhpStorm almost exclusively now that we have a free open source license we can use. I tried it briefly last year, but with the latest round of updates it seems like it'll be worth taking a closer look at again :-).
I have liked the native speed of PhpEd, but one thing that I think that has held me back from switching to another platform has been the lack of Mac support it has so maybe switching to PhpStorm will make that transition more of a possibility down the road.
Anyway, you can always download Java from the Oracle Downloads website and put it somewhere in your home directory and just define these variables in ~/.bashrc:
I'll try it on Fedora on the Open JDK and see how it goes. Right now I'm using Sublime and love it, but many of my colleagues are encouraging me to try PHPStorm.
Well I can confirm that it does appear to work on Fedora 19 using the Open JDK, but it is slow on my machine (i7 with 8GB of RAM and an SSD). In fairness though it does make it clear with this warning message when you run it that this is to be expected:
"./phpstorm.sh
WARNING: You are launching the IDE using OpenJDK Java runtime.
ITS KNOWN TO HAVE PERFORMANCE AND GRAPHICS ISSUES!
SWITCH TO THE ORACLE(SUN) JDK BEFORE REPORTING PROBLEMS!
NOTE: If you have both Oracle (Sun) JDK and OpenJDK installed
please validate either WEBIDE_JDK, JDK_HOME, or JAVA_HOME environment variable points to valid Oracle (Sun) JDK installation.
See http://ow.ly/6TuKQ for more info on switching default JDK."
So yeah, I guess they weren't kidding in their list of requirements. Oracle JDK or suffer a degraded performance.
They say that they don't support it. There's a difference between "doesn't work" and "isn't supported". Isn't supported implies that if you encounter a bug that is due to your choice of JDK, they will not feel obligated to fix it (though may still choose to do so if its practical for them to do so).
Awesome VCS integration, super fast and symbol navigation is amazing. I stuck with Netbeans for over two years, it was decent, and then the newer versions (7.3) started crashing on my large PHP project. Switched to phpStorm and never looked back.
I use PyCharm, which has most all of WebStorm in it. I'm a huge fan of JetBrains cross-platform dev tools. I still use other text-editors often for one-off edits, but most my big team projects get edited with PyCharm.
Just to reiterate myself - IMO, PHPStorm, PyCharm etc. are slightly more featureful and more coherent for their respective languages than IDEA + plugin.
PHPStorm is cool. Haven't looked back after switching to it almost an year ago. Worth the money. Plus, they offer discounted licenses for students and open source projects!
I am a paying user ) and when I reported that php 5.5 was not recognized as php 5.4 or better I felt I was just brushed off. So, for the moment I cannot use the built in server features.
) Technically I bought Idea and downloaded the php plugins.
It also does not hurt that they're going on a Vagrant rampage and have been showing off my app, https://puphpet.com :)