PhpStorm Magento Plugin and Enhancing Magento Development Productivity

Working on the same technology, on the same project, on the same code – year over year – will inevitably make a developer strong, knowledgeable and something of a subject matter expert.  Howeverbeing hyper-focused for such extended periods introduces various risks to both the developer and the project, such as potential loss of interest or, worse, burnout.
That’s when PhpStorm Magento 2 plugin came to the stage.

To offset this personal risk at the same time increasing the likely personal productivity and results, I strongly believe and recommend that every developer should have an Open Source side project (or two). Why take on additional work, you ask? In addition to the obvious benefits of delivering more back to your company and the community, a side project will inevitably boost a developer’s skills, enhance their experiences, and expand their respective community networks. On a personal level, becoming a key part of additional projects expands a person’s sense of belonging. After all, we all want to be a contributing teammate surrounded by like-minded passionate developers.

Having said that, I would like to share my personal insights  – why I wanted to participate in a specific Magento Open Source project – the Magento PhpStorm plugin. I recognize every developer has their own motivations. The following are mine:

  • My everyday work: as a developer, I need such a tool and I need it now. It might take a significant amount of time waiting for someone else to write it for me.
  • This project provides the possibility to work with the technologies unfamiliar to me before, such as Java, Gradle, and the IntelliJ SDK.
  • Love of the (developer) game.  Said simply and quite candidly, I love Magento, I love PhpStorm. I really think these should work together…like a charm.
  • This project is freaking interesting and has proven to be a great pleasure to work on together with brilliant minds from around the globe.

What is Magento PhpStorm for a Magento developer

PhpStorm 2 Magento plugin is a plugin compatible with IntelliJ IDEA Ultimate and PhpStorm IDE – most common working environments for Magento developers. This plugin is written to enhance the Magento development experience. In layman’s terms, a developer’s standard routine consists of repetitive operations that could be automated with IDE… this is exactly the purpose this plugin serves.

The tool is being written by the Magento community; each of the authors is an experienced Magento developer. Working on the plugin provides a unique possibility to take this experience and turn it into useful features.

What has been done regarding new features

For the first release, we have added a bunch of new features. The plugin had no inspections in the previous version, we added 4 of them. Each inspection warns a developer about possible issues in code. Here is the example of the plugin declaration inspection:

Magento 2 phpstorm plugin inspection gif

Along with inspections, there have been added several actions for making common Magento customizations. One of them is creating a plugin method and di.xml declaration from the context menu after right-clicking on a class public method:

Magento 2 PHPStorm plugin create a plugin

Furthermore, we have added new reference navigation and completion for MFTF and RequireJs, line markers for GraphQl, among other enhancements.

A comprehensive list of the new features is described in the project’s wiki.

What has been done regarding project infrastructure?

Project infrastructure has been enriched with the following:

  • partial test coverage for new and old features
  • configuration for Gradle task runner
  • CI for running tests on each PR using GitHub workflow
  • templates for the pull request, bug report and feature request
  • description of features on the wiki page
  • mechanism of releasing alpha and stable versions using GitHub workflow
  • project milestones
  • a pretty big backlog
  • project boards for convenient work with the issues

What’s next?

We are planning to:

  • add Magento version related features 
  • setup code style check
  • add features related to Magento frontend (custom themes support, etc.)
  • extend test coverage
  • make refactoring of coupled parts of code

…and this list will evolve in accordance with the community’s needs..

PhpStorm Plugin by Atwix

The Atwix PhpStorm Plugin, designed for Magento 2 development, offers a suite of tools to enhance coding efficiency and quality. Developed by Atwix, a leader in Magento solutions, this plugin aims to streamline the development process, reduce code errors, and improve project management. It includes features for code quality analysis, automated updates, and efficiency in handling Magento-specific development challenges. This plugin is particularly useful for developers working on complex Magento 2 projects, aiming to deliver high-quality, efficient code with less manual effort.

It comes with a variety of both free and paid features. The free features focus on code quality enhancements, such as checks for proper coding standards and Magento-specific code improvements. The paid version offers advanced functionalities like auto-detection of installation paths, specialized navigation support for various Magento file types, template override comparisons, and the execution of Magento CLI commands. Additionally, it features a ChatGPT widget integration, providing further assistance in development. The blend of these features caters to both basic and advanced needs of Magento 2 developers. For a comprehensive list of features and details, you can explore our features page

Special Thanks

Thanks for all community members who have contributed to the release 1.0.0:
Vasilii Burlacu, Roman Glushko, Eduard Chitoraga, Max Mezhensky, Yaroslav Rogoza, Andrew Chornij, Shankar Konar, Alexander Shkurko, Bohdan Harniuk
Last but certainly not least, this project would not be nearly as successful without Magento’s mentor support, specifically Lena Orobei, Valerii Naida, and IntelliJ guru Jakub Chrzanowski.

FAQ

  • How can I install and set up the PhpStorm Magento plugin?
  • Can PhpStorm’s plugin improve code quality and performance in Magento development?
  • Does PhpStorm’s Magento plugin support customization or extension for specific project needs?