PhpStorm – Review and Give Away

Share this article

It’s said the tool doesn’t make the craft – a carpenter can drive a nail into a wooden plank using a hammer, a rock, another plank, or his forehead, but he’ll rarely choose anything other than the hammer. Some of our foreheads may have gone hard with constant hammering while programming, but that doesn’t mean its a better tool than the never before used hammer. Ok, enough analogies, I’m talking about using a text editor versus using a full-fledged PHP-dedicated project-oriented IDE for PHP application development. Both will get the job done, but productivity-wise, one is obviously a better choice than the other. PhpStorm is a Java-based IDE developed by Jetbrains, derived from a master multi-programming-language IDE called IntelliJ IDEA. It’s a stripped down version of IntelliJ with added PHP support – something IntelliJ needs to have manually enabled via a plugin. Now, this wouldn’t be a good review if I didn’t mention some downsides, but luckily these are few and far between and, as you’ll see below, aren’t show-stoppers. Let’s get them out of the way first. First and foremost, PhpStorm is built on Java. Java is a dinosaur language and the VM which needs to spin up to execute Java apps is one of the greatest memory and CPU hogs – especially when working in an OSX environment. Coupled with the IDE’s rich functionality, this resource demand might prove to be too much for weaker machines. Using Java comes with a big perk though – PhpStorm is fast. Blazing fast. Furthermore, PhpStorm is a project-based IDE, which means there’s no simply editing just one file. You need to define a project and tell the IDE which files are included in it. This is a professional IDE designed for heavy coders who develop large applications and professional platforms. It emphasizes speed, productivity, and ease of access to the entire project, and as such, offers no actual support for individual PHP file editing in the traditional sense. Certainly, you can edit a PHP file, but it’ll get opened under the project you have opened at that time. And new projects must be opened in a new window – there’s only one IDE instance per open project.

Notable Features

But while I mentioned being built on Java as a downside, it’s also a huge-advantage. It lets us use the IDE on every development platform we own. This alone is worth looking at as a deciding factor in the purchase, as it allows you to carry your development environment with you. If you have a specific set of rules for every project, if you have coding styles and enforce PSR standards, if you have include paths that are identical across platforms but are a pain to set up over and over again, all you need to do is load the configuration from the originally configured PhpStorm and you’re good to go. The second downside also doubles as an advantage. The IDE being strictly project-oriented means it indexes your entire project (all of your include_path as well if set), and offers full-fledged autocompletion with documentation for all the classes bound to your project, namespaces and all. You can exclude certain files and folders if you wish, but the gist of the matter is that one IDE instance handles one IDE project – the resources of one instance are dedicated to fast intellisense and code scanning of that project. Naturally, the clipboard is cross-instance compatible, so copying files or code snippets from one instance to the other is a breeze, whether you do it via the clipboard or just drag and drop across windows. PhpStorm 4+ supports the latest PHP version, including 5.4. There’s trait support, short array syntax, and all the other candy. If you’re developing a 5.3 project but would like to use 5.4 on new projects, configuring the IDE to do so is a walk in the park – you can set the actual interpreter version in the project configuration. If you accidentally use the short array syntax in the 5.3. project, the IDE will warn you accordingly. Another useful feature is smart refactoring; you can rename a file and have its include statements altered automatically across the entire project. You can refactor a global variable and have it changed in every file which uses it. You can refactor a property and see it and its accessors change without further effort. You can even refactor an entire PHP namespace and have it change across all classes. Imagine how much time this saves when dealing with 10k+ file projects. Large IDEs can be convoluted and complex, but PHPStorm eases you into its functionality in two ways: 1) Quick Tips that are actually practical will appear on every startup, unless you decide not to show them anymore. I’ve learned around 50% of all commands I know and use from these tips. 2) If you can’t find an IDE option in the menus, hitting Ctrl + Shift + A will open a command browser in which you can type out the IDE command you want to do. Want to git push the changes? Ctrl + Shift + A, and type “Push”. Forgot the shortcut for move line up/down? Just Ctrl + Shift + A and type “move line”. The shortcut will be displayed in the list. This isn’t your average autocomplete either – this is near-instant. PHPStorm’s intellisense is mind-blowing. The aforementioned autocomplete across classes in a project is great, and the autocomplete on the selection of IDE commands is a great idea, but it offers intellisense for JavaScript, HTML, and CSS as well. No other IDE has fulfilled the need for this so completely. After all, it’s not only a PHP editor – it’s actually WebStorm, the web-focused IDE from JetBrains but with added PHP support, which means it also has full support for rich and fast editing of HTML, JS and CSS. There’s also a built-in graphical diff tool which highlights differences in a readable manner allowing you to visually compare the changes and seamlessly transfer updates from one file to another with the click of a button. If a conflict occurred, just hitting resolve will delete the conflict resolution files after the user syncs them up. The IDE also has excellent plugin functionality and a vibrant community around it. It is, essentially, built as a bare-bones application and all the functionality is plugged in. This lets you disable the plugins you don’t need (like the enabled-by-default CVS and SVN if you only use Git) to conserve resources, and lets you expand the IDE adding new functionality you feel is missing. To look up some plugins, see http://plugins.intellij.net/?webide Here’s some more gems:
  • Clicking the closing brace of a block that begins off-screen will display the entire starting line of said block in the top editor gutter. So if you forget the arguments a function consumes, there’s no need to scroll – just select its ending brace and the starting line will appear on the IDE frame.
  • Open any file with CTRL + Shift + N, or class with CTRL + N, instantly. No scrolling through directory trees, no loading or searching. This is extra handy when you have many files/classes in your project.
  • Got some messy code from other developers which you can’t look at unless it’s at least in PSR-1? Just run the code auto-format with CTRL+ALT+L on the files, blocks of code, or even entire folders to clean it up according to the coding style du jour.
  • Any undefined namespaces, redeclared classes, syntax errors and disrespected type hints will glow red. They will be highlighted in the right editor gutter and in the code itself. PHPStorm is your pair programmer – it helps you avoid silly bugs before you even make them!
  • Keyboard shortcuts like “duplicate line”, “move line up / down” and live templates which let you create aliases for entire blocks of parametrized code will speed up your development and editor navigation. As an example, have a look at a couple videos and notice the speed of the developer as he uses autocomplete, live templates and various other WebStorm shortcuts to speed up his workflow.
There are loads of other features – I can only recommend you download the 30-day trial and give it a go. If it feels intimidating at first, stick with it and within a day or two you’ll be working it like a pro.

Free Give Away

Many people oppose transitioning to PhpStorm with the argument: “Netbeans has all that and it’s free.” While I won’t argue that Netbeans does indeed have the majority of features PHPStorm offers (although not all of them), even if they had identical features, interfaces and commands, the speed increase alone is worth the price. Also, NetBeans belongs to Oracle as of 2010 who have done little in the past couple years to bring the IDE up to speed. Also important is the fact that the company making PhpStorm is approachable and friendly – the software they make is maintained, built, and sold by people you can actually reach. Most people figure: “I don’t care if they burn puppies or have supervillainous plans, I like their product” (which is essentially why Apple products get sales). But Jetbrains is open to suggestions, they give discounts for good causes, they extend trial periods if you ask them to, they will even provide you with a free Open Source license if you’re the main committer of an Open Source project! It is in this friendly and generous spirit that Jetbrains, in partnership with SitePoint, is giving out PhpStorm licenses and hard copies of PHPMaster: Create Cutting Edge Code
! To be eligible for the give away, either 1) download the IDE, test it out, and post a comment below in which you name your favorite feature, or 2) share this article on Twitter with the hashtag #phpmaster, all by August 22nd. Three winners will be chosen at random shortly thereafter. Comment winners will be notified by email (be sure to provide a valid email address in the contact-form!) and Twitter winners by direct-message.
  • 1st Prize: A PhpStorm license and a hard copy of PHPMaster: Create Cutting-Edge Code
  • 2nd Prize: A PhpStorm license
  • 3rd Prize: A hard copy of PHPMaster: Create Cutting-Edge Code
Good luck, and happy coding!

Frequently Asked Questions (FAQs) about PhpStorm

What makes PhpStorm stand out from other IDEs?

PhpStorm is a highly versatile Integrated Development Environment (IDE) that is specifically designed for PHP developers. It stands out due to its deep code understanding capabilities, which allow for smart code navigation and automatic code refactoring. PhpStorm also supports a wide range of languages, including PHP, HTML, CSS, JavaScript, and SQL. It also offers seamless integration with version control systems, databases, remote deployment, and other tools, making it a comprehensive solution for PHP development.

How does PhpStorm enhance productivity?

PhpStorm is designed to streamline and automate routine tasks to enhance productivity. It offers features like code completion, error prevention functionalities, and automated refactorings. Its built-in developer tools, such as version control systems and rest client, further enhance productivity. Additionally, PhpStorm’s user-friendly interface and customizable settings allow developers to tailor the environment to their preferences, which can significantly improve efficiency.

Is PhpStorm suitable for beginners?

Yes, PhpStorm is suitable for beginners. It offers a user-friendly interface and a range of features that can help beginners learn and understand PHP coding. The IDE provides code suggestions and error prevention functionalities, which can be particularly helpful for those new to programming. Additionally, PhpStorm offers extensive documentation and a supportive community, which can be valuable resources for beginners.

How does PhpStorm support testing and debugging?

PhpStorm provides robust testing and debugging tools. It supports PHPUnit, Codeception, PHPSpec, and Behat for testing. For debugging, it offers a visual debugger for PHP, JavaScript, and TypeScript. It also supports Xdebug and Zend Debugger for PHP debugging. These tools allow developers to test and debug their code efficiently within the PhpStorm environment.

Can PhpStorm be integrated with other tools?

Yes, PhpStorm offers seamless integration with a wide range of tools. This includes version control systems like Git, Mercurial, and SVN, databases like MySQL and PostgreSQL, and command-line tools. It also supports remote deployment and collaboration tools, making it a versatile solution for PHP development.

Is PhpStorm customizable?

Yes, PhpStorm is highly customizable. Developers can customize the editor’s appearance, including themes, fonts, and colors. They can also customize the coding style, keymaps, and tool windows to suit their preferences. This level of customization allows developers to create a comfortable and efficient working environment.

Does PhpStorm offer any security features?

PhpStorm offers several security features. It includes a built-in terminal with SSH support, which allows secure remote access. It also supports secure version control systems and provides safe refactoring of code. Additionally, PhpStorm’s regular updates ensure that the IDE stays secure and up-to-date.

How does PhpStorm handle large codebases?

PhpStorm is designed to handle large codebases efficiently. It offers smart code navigation and search features, which allow developers to navigate large codebases quickly. Its powerful analysis and inspection tools can also handle large codebases, ensuring code quality and consistency.

Does PhpStorm support mobile development?

While PhpStorm is primarily designed for PHP development, it does offer some support for mobile development. It supports HTML5, CSS, and JavaScript, which are commonly used in mobile web development. However, for native mobile app development, other IDEs may be more suitable.

Is PhpStorm worth the cost?

PhpStorm offers a range of powerful features and tools that can significantly enhance productivity and efficiency in PHP development. While it is a paid IDE, many developers find that the benefits and time savings it offers make it worth the cost. Additionally, JetBrains, the company behind PhpStorm, offers a free trial, allowing potential users to evaluate the IDE before making a purchase.

Bruno SkvorcBruno Skvorc
View Author

Bruno is a blockchain developer and technical educator at the Web3 Foundation, the foundation that's building the next generation of the free people's internet. He runs two newsletters you should subscribe to if you're interested in Web3.0: Dot Leap covers ecosystem and tech development of Web3, and NFT Review covers the evolution of the non-fungible token (digital collectibles) ecosystem inside this emerging new web. His current passion project is RMRK.app, the most advanced NFT system in the world, which allows NFTs to own other NFTs, NFTs to react to emotion, NFTs to be governed democratically, and NFTs to be multiple things at once.

Share this article
Read Next
Get the freshest news and resources for developers, designers and digital creators in your inbox each week