Advanced Magento Support
Advanced Magento Support for PhpStorm & IntelliJ IDEA
Magento 2 fights your IDE. di.xml is untyped strings. ACL resources, config paths, translations and layout blocks are referenced by name across dozens of files. Every new module, plugin or observer is boilerplate. Out of the box your IDE treats most of it as plain text — so you grep, guess, and find out at runtime when bin/magento blows up.
Advanced Magento Support teaches PhpStorm to actually understand Magento 2: navigate, validate, refactor and scaffold across XML and PHP, and catch mistakes before they ship.
See and navigate Dependency Injection
- Visual DI graph tool window for
di.xml— types, preferences, virtual types and plugins, with caret sync and graph-to-source navigation - Plugin interception diagrams — nested around-layers by
sortOrder, before/after at their chain depth - Code Vision on
<plugin>declarations linking to the before/around/after interceptor methods - Bidirectional PHP ↔ di.xml navigation, argument & declaration completion, extract-to-virtual-type, safe rename, find usages
- DI validation: constructor signature checks, virtual-type cycles, duplicate preferences, invalid class references
Navigate everything, not just PHP
- Jump between XML and PHP for plugins, observers, routes, DI preferences, templates, ACL resources, config paths, translations, layout blocks, the admin menu, email templates, indexers, message-queue topics, db_schema tables, GraphQL resolvers, MFTF sections, Web API and widgets
- Gutter icons, Go to Definition and Find Usages wherever Magento uses a string identifier
- Quick Documentation on block names, block classes and templates
Catch errors before runtime
- Inspections for unresolved references, missing classes and files, wrong interfaces, duplicate declarations, dependency cycles and argument type mismatches — with quick-fixes to create the missing file or class
- Safe cross-file rename for layout blocks, ACL resource ids and DI virtual types
Generate the boilerplate
- New → Magento: module, controller, plugin (interceptor), observer, queue consumer, CRUD entity, CLI command, email template, admin menu item, block/view model, EAV attribute, data & schema patches, customer section
- Test scaffolding: unit, integration and MFTF (test, section, action group, test suite)
Testing & frontend
- Code Vision navigation between production code and PHPUnit tests, plus one-click test creation
- MFTF section / action-group navigation, completion and inspections
- Frontend: layout XML, RequireJS, Less, translations, UI components, themes and widgets
Built for developers and teams shipping production Magento 2 extensions who want their IDE to pull its weight — less grepping, fewer runtime surprises, more shipping.
<!-- MAGEfx_SCREENSHOTS_START -->Screenshots
Visual DI graph
Your di.xml as a node graph: preferences, virtual types and the interception stack, joined by colour-coded extends / preference / intercepts edges
Scenario di-graph
DI graph: grouped columns
Same di.xml, bucketed by declaration kind — preferences, types with their plugins, virtual types, and the factories and proxies it leans on
Scenario di-graph-columns
Generate Magento boilerplate
New → Magento scaffolds modules, controllers, plugins, observers, CRUD entities, patches and tests
Scenario scaffolding-menu
Plugin method gutter navigation
Gutter icon on a plugin method jumps to the intercepted method
Scenario plugin-gutter
Plugin interception via Code Vision
Code Vision on <plugin> links to the before/around/after interceptor methods
Scenario di-plugin-codevision
DI preference navigation
Navigate a di.xml preference for/type straight to the PHP class
Scenario di-preference
ACL resource navigation
Ctrl+Click the resource attribute to jump to acl.xml
Scenario acl-navigation
Layout block reference
Navigate referenceBlock name to the block declaration
Scenario layout-block-ref
System config path
Navigate field id to its config path declaration
Scenario config-path
PHP translation phrase
Navigate __() phrase to en_US.csv
Scenario translation-php
Widget container mapping
Widget container name navigates to layout container
Scenario widget-container
Web API ACL resource
webapi resource ref resolves to acl.xml
Scenario webapi-acl
Route conflicts in routes.xml
Open any routes.xml as a live view: the merged pipeline shows this module's controller is shadowed and never runs
Scenario routes-conflicts
Magento Routes: winners and shadowed controllers
Project-wide Routes view: routers, the resolution pipeline per route, and a conflicts table of every shadowed controller
Scenario routes-tool-window