Mission “Save the plugin”

Why have I chosen to contribute to the plugin? Because it was interesting and challenging. What also motivated me – was the understanding that I develop the functionality that will be used by plenty of Magento developers.
On behalf of the group of Community Engineers, we are opened to new ideas and welcome new contributors. Feel free to open an issue with a feature request. Let’s make our work with Magento 2 faster, safer, more and more convenient. You can catch up with me on the Magento Community Slack channel or on Twitter if you have any questions.

What about getting acquainted with folks who made that possible? I have asked them to share why they had chosen to contribute to the repository. Let’s take a look at their responses.

Commits in the repository since the early beginning

Another amazing navigational tool is the line marker. We have extended this with the following functionality:

  • 26 contributors from 9 countries
  • Around 40 forks
  • Around 300 Git clones per month
  • Around 2500 visits to the repository per month
  • Around 230 pull requests.

The Magento community is something even more special. There are so many opportunities, exposure, and networking possibilities here. I haven’t worked much on Java, but I still decided to start contributing to the Java-based Magento PhpStormunder the guidance of Vitalii Boiko, to really improve the plugin, used by almost every Magento developer, and to have a direct impact on our Magento community. I have learned so much just in the past month of contributing to this repository, and cannot wait to constantly contribute to the Magento community in any possible way.

What have we done?

I want to help developers put less effort into Magento development, as believe that they should be focused on business and not worry about code duplication. This is the reason I’m here.

  • Generating code from the templates by context menu
  • Reference navigation between files
  • Code completion
  • Code inspection
  • Code quick fix
  • Line markers navigation.

Code generation

My name is Shankar Konar. I’m from Ahmedabad, Gujarat, India. I’m working as a Magento developer at Elatebrain Pvt Ltd. I’ve always been passionate about Magento open source project and try to extract maximum knowledge by contributing to different repositories as well as to have fun while learning new stuff.

  • acl.xml
  • CLI command PHP class
  • di.xml with various declarations (plugin, preference etc.)
  • CRON job PHP class
  • crontab.xml
  • UI component data provider PHP class
  • Layout XML file
  • menu.xml
  • View Block PHP class
  • Resource Collection PHP class
  • composer.json
  • Action Controller PHP class
  • Cron Group XML file
  • GraphQl resolver PHP class
  • Model PHP class
  • Resource Model PHP class
  • registration.php
  • View Model PHP class
  • module.xml
  • Observer PHP class
  • Plugin PHP class
  • routes.xml
  • UI Form XML file
  • UI Grid XML file.

Reference navigation and code completion

I’d like to thank everyone who has contributed to the repository, added a new issue, engaged on the Slack channel, created PR’s, advised the team, and so on. Without you, well, it would not be Magento Community Engineering as we know it!

  • MFTF tests XML tags and attributes
  • RequireJS injection navigation 
  • PHP class and method reference in the crontab.xml
  • Parent menu reference and completion in the menu.xml.

Code inspections

It was exciting to find out that the PhpStorm plugin was resurrected by Vitaliy Boyko. I believe that this is really important, as the tool helps you to improve not only the quality of the Magento solutions but also the development process. So in May 2020, I joined Vitalii in PhpStorm plugin contributions. I started with several adjustments and implementation of the CLI command generation. After that I have proudly joined the Maintainers team, reviewing the tool changes. Being a great responsibility, it’s also an interesting process that helps improve professional skills and provides a chance to communicate with people around the world. 

  • Plugin inspection within PHP class
  • Duplicated Observer Usage in events XML
  • Inspection for the Module declaration in the `registration.php` file
  • Duplicated Plugin Usage in di XML
  • Inspection for disabled cache site-wide
  • GraphQL inspections
  • Inspection for the Module declaration in the `etc/module.xml` file
  • Inspection for the Title XML required attribute in the `etc/acl.xml` file.

Line markers and more

It has been almost a year since we resumed work on Adobe’s Magento PhpStorm plugin. It’s fair to say that balancing merchant work with open source project contribution is not done easily. Especially during the build-up to the holiday season, when all of our client businesses ramp up their online eCommerce plans – requesting that agencies like Atwix ramp up development efforts, as well.

  • Plugin class to di.xml and vice versa
  • GraphQL resolver to the schema and vice versa. 

Statistics become even more impressive considering the fact that there is not even a single line of code written commercially. Every feature is based on personal initiative during free time.

Top contributors and maintainers

Here’s some statistics – we have:

Adarsh Manickam from Chennai, India
Adarsh Manickam

Commits in the repository since the early beginning.
This is the place that allows making your work much easier, by giving you the freedom of choosing which Magento processes you want to facilitate.
My name is Bohdan Harniuk! I live in Khmelnytskyi, Ukraine. I’ve worked as a software engineer for more than 3 years. I decided to contribute to the Magento 2 PhpStorm Plugin project because I really wanted to develop something useful for other developers (and myself) to make their everyday work a little bit more comfortable and pleasant.
I started working with Magento back in early 2019 when I was working at Zilker Technology and started contributing to the Magento repositories in late 2019. Once I got the hang of it, I dove deep and became the No.1 Magento contributor in the world for Q4 2019. I have been programming for the past 5 years in various domains like NodeJS, ReactNative, web development, and Magento of course.

Serhii Zhovnir, Tech Lead at Atwix, 5x Adobe Magento Certified
Ukrainian Flag

I have been working in the sphere of business automation for more than 8 years and during 7 of them, the Magento platform is the main tool for me. From small customizations to complex analytics system integrations and from being a beginner in a world of e-commerce to a Magento evangelist, I had been looking for the possibility to volunteer to the platform. And I found this in the Magento community. One of the driving forces of the whole platform.
Nothing draws people together like community engineering. Even though we work remotely from one another, separated by oceans, living our daily lives in different cultures, speaking different languages – we have much in common. Starting with our technical mindset and a common commitment to improving our Magento community. Our passion to automate, optimize, and work creatively to solve complex problems will help the next wave of developers having an easier go of it.

Shankar Konar. from Ahmedabad, Gujarat, India
India Flag

I’m Adarsh Manickam from Chennai, India and I work at EY as an Associate Engineer on Magento projects.
Hi! My name is Alexander Shkurko. I live in Kyiv, Ukraine. I work in Atwix as a Technical Lead. My area of responsibilities is in team management, projects technical expertise, and communication with the business owners along with the project managers.

Dylan Ngo from Vietnam
China Flag

There are several IDE features utilized most in the plugin:
I always love new challenges and since the early days in my college, I was mostly interested in learning the Java language. That is the reason I chose to contribute and learn a lot of things in Java.

Bohdan Harniuk
Ukrinian Flag

Hi! I’m Dylan Ngo from Vietnam. I’m a software engineer, blogger, contributor to Magento project, ReactJS, and so on.

Eduard Chitoraga
Moldova flag

Hi! I’m Serhii Zhovnir, Tech Lead at Atwix, 5x Adobe Magento Certified. I’m from Khmelnytskyi, Ukraine. My programming experience is almost 4 years with Magento and 5 years with PHP with Java usage only for contributing to PhpStorm Magento 2 Plugin.
Beyond what’s mentioned above we added a Magento 2 module as a separate project, improved test coverage of the existing functionality, added CI and much more.
We all have 24 hours in a day, right? Kidding aside, with all the community’s interest, passion and motivation aligned, and now on the other side of the holiday sprint season, there is a clear need and now some time to re-commit effort to this critical community engineering project. And critical this project is! The number of people using this plugin defies the imagination. There were more than 70,000 downloads in November 2020. Almost every Magento developer is affected.

Alexander Shkurko
Ukrainian Flag

From my point of view, the work we do in the Magento community – like the software development improvement for the PhpStorm plugin – helps people to make things better, faster, and with higher quality.
The reference navigation and completion remain to be very important features. The first helps the programmer to quickly locate the desired position or a file. The second helps with avoiding mistakes and speeding up the coding process. We extended the existing functionality with the following features:
Why have I chosen to contribute to the plugin? That’s a quite good question because I was trying each new repository, looking for new challenges. And fortunately, I jumped into the PhpStorm plugin and found a big area for growth. It was a bit challenging because of the new technology, but it was worth it. 
Contributing to open-source projects is a highly appreciated practice and I strongly believe in it. The best part is that the bond with the community is something really special since we’re all spread across the world at various companies, time zones, and age groups but still work towards the same goal. 

Afterword

Code inspections are a powerful functionality we started using this year. We covered some of the most critical parts of the Magento 2 codebase to help the developer avoid mistakes that can possibly lead to hours of debugging:During 2020, the feature we spent most time and effort on was code generation. The community has chosen it as most wanted by voting on Twitter. We implemented various actions that can generate the following files:
Hi! My name is Eduard Chitoraga from the Republic of Moldova. I’m a proud Atwix developer that found pleasure in contributing.