I set out on my programming journey at the age of 14, when I made my first website in Notepad. Yes, you read that correctly… Notepad! I would imagine most people reading this article know what an IDE (integrated development environment) is. For those unlucky few who don’t, at a very basic level, an IDE will allow you to work much more quickly, as it groups all your development tools into one app. It will also give you basic code generation tools, autocomplete or intelligent code completion and many other time saving features.
If I went back to when I began, I would have still done things the way I did – I would stick with Notepad, as it enabled me to learn the basics of html and PHP much more thoroughly than if I had started with an IDE. When you learn to talk at an early age, you certainly wouldn’t progress that quickly if someone was by your side completing your sentences every time you talk.
A year or two on, feeling like more of an accomplished programmer and having a good understanding of PHP, JavaScript, HTML and CSS, IDEs have enabled me to create projects more quickly utilising my new skills but with that aid of the basic features an IDE offers.
So – this is like a swear word to me now, but here goes – my first IDE was Dreamweaver. It’s now anathema to me, and by that I don’t mean “a formal curse by a pope or a council of the Church, excommunicating a person or denouncing a doctrine”. I should stress, in my defence, that this was 13 years ago, and it didn’t take me long to realise that although this did help me code websites more quickly at the time, it was also awful. I remember building websites before divs existed. This involved a lot of using tables, and Dreamweaver would create a plethora of only what I can describe as diarrhoea-like code. It chucked hundreds of attributes into every html tag and put weird and wonderful extra html all over the place. JavaScript and flash (yes, I know, another swear word… FLASH! Ahhhhh) appeared in dodgy script blocks in the preview pane, and everything was just clunky. Dreamweaver may have improved since, then but I personally still see this as a text editor for building basic websites.
I soon started taking programming more seriously and building my first web apps. It wasn’t long before I found out about other offerings and I tried out a series of new IDEs, including NetBeans, PhpED, Eclipse and Sublime to name a few. By now, I think I’ve tried just about all of the big ones and consider myself to be a seasoned IDE user.
About two years ago I fell in love. I’m not talking about my fiancée; I’m talking about the IDE that made my programming life so much less stressful.
With all previous IDEs, I got the feeling there was just something missing; I had to install packages here and there to get extra tools, and there were always elements of the setup that felt awkward. The problem is that, having tried so many IDEs, there were elements of each one that I liked, and I wanted there to be one IDE that had it all. I had become an IDE snob, expecting everything to work perfectly, pigs to fly and miniature unicorns to trot along to my desk to entertain me whenever I was in a procrastinating mood.
When I discovered PHP Storm, life became so much easier. In my eyes it is the perfect IDE. It didn’t make pigs fly, or generate miniature unicorns, but it has completely changed the way I work. The plethora of IDEs I tried in vain before now seem inferior in comparison, and I can safely say that PHP Storm has done more for my sanity than any single app I’ve purchased in the last 5 years.
So why am I such a fan of PHP Storm?
1. It’s super quick
Nobody in this day and age likes waiting. I get annoyed at having to walk somewhere as it feels like a waste of my time. I’d rather jog; maybe I’d get a sweat on doing it, but I’d get there much more speedily. So for me, waiting a minute while the damn thing loads up just won’t do. With PHP Storm, I can start the program up and be working away within a second or two. The only feature-rich editor that I would say rivals PHP Storm in this area is Sublime, however when you compare the two in terms of searching large projects, PHP Storm comes up trumps.
2. Excellent Coding Standards
I’m rather picky about my code. PHP Storm, as a true IDE, ensures that keeping up with the standards our company has is a piece of cake. I can fix all of my mistakes (not that I make any 😉 ) across a single file, directory or even a full project with one click or keyboard shortcut. This feature helps me keep my code consistent and mistake-free.
3. Debugging is a piece of cake
While there are extensions to add phpunit and XDEBUG to other IDEs, however they don’t quite compare to PHP Storm. The GUI makes setup and modification effortless. I no longer need to waste valuable time setting up, and it’s no longer a struggle to debug, as it often is with less capable tools in stand-alone debugging utilities. It can take 2 or 3 minutes to set up on a more complex project, but it’s nothing to worry about compared to other solutions.
4. It has faultless Version Control
At work I use Mecurial, and at home I use SVN. Both integrations are available in PHP Storm and it works perfectly for committing, pushing, pulling and reverting. Just one click gives you access to the most common functions, and it is all built into the menus, meaning you don’t need to use other software or the command line outside of the IDE.
5. Unrivalled Project Organisation
From convenient project settings to countless search options, easy navigation and great shortcuts for finding functions and variable definitions, PHP Storm makes navigating a project as simple as tying your laces. You can arrange your most frequently used project items into favourite lists. You can also create project stubs based on numerous templates, including Composer, Drupal, WordPress, HTML5 Boilerplate, Twitter Bootstrap, Foundation, Node.js Express, AngularJs and more – the list goes on.
A few PHP Storm shortcuts
Here are just a few of the best shortcuts I use in PHP Storm:
Ctrl + B – Go to declaration – You have inherited a project and you have found a function, but you have no idea where it is defined. Stick your cursor in the function name, press Ctrl + B and, Bob’s your uncle, the function appears.
Ctrl + W – Select word at caret – This only saves me a second or two each time I use PHP Storm, but it all adds up and I find it really useful. Rather than clicking and dragging to select text, hitting this shortcut once selects the full word where the caret is located. Pressing it again,extends the selection to the next containing node (for example, an expression, a paired tag, an entire conditional block, a method body, a class etc.)
Ctrl + F12 – File Structure Pop-up – This displays a popup showing the structure of the current file for quick navigation. If you start typing, it will filter the list. This is great when you can’t quite remember the full name of a function.
Alt + F7 – Find Usages – Imagine you need to change a function, but you don’t know if there are other pieces of code that use the same function… Just hit Alt + F7 and it will list all usages, and you can click through straight to it.
Ctrl + Shift + A – Find action by name – shows the suggestion list of matching names. By default, this list includes the menu commands only. If you want to include the non-menu commands in the suggestion list, press Ctrl+Shift+A once more.
Alt + Enter – Show the list of available intention actions –
Ctrl + Slash / Ctrl + Shift + Slash – Comment or uncomment code –
Shift Shift – Search everywhere. – Just a double tap of shift and you can search anywhere for anything.
Ctrl + D – Duplicate the current line or selection – I use this all the time. If you are about to write a similar line to the one above, hit this combo, change the little bit you need to change and you’re done!
Ctrl + Alt + L – Format document – If you are a little OCD when it comes to code (like me), this is great. After a little initial setup time dictating how you prefer your code to be formatted, you can then use this shortcut to format your code exactly as you set it up. It’s really handy for keeping code clean and tidy, but also helps highlight issues in your code, such as missing tags.
I could go on listing hundreds of shortcuts, but these are just a few of the long list that I regularly use. They’re just one more way in whichPHP Storm makes my life easier.
To sum up
Having used a great number of IDEs, I feel comfortable giving my opinion on which is the best. Each IDE has its own pros and cons, but so far I have never found anything that has rivalled PHP Storm.
As a software engineer you are entitled to your own opinions on how to code, what language and technologies are right for each project, the design patterns you utilise and the IDE you use. Everybody has their way of doing things and it may be that some of you prefer other IDEs; however, for me, if I’m ever asked what the best IDE is, my answer would always be ‘PHP Storm’.