Compatible with PhpStorm
Dec 06, 2014
139 597
Go to to get the full version
Don't install this version if you have the full version

Plugin for Magento development
Please read the full list of features with a brief explanation of how to use them here:

Download plugin

Recent change notes


  • Bugfixes:
    • NullPointer Exceptions and IllegalStateException
    • Compatibility issues with PhpStorm8 multicaret system
    • ConnectionException bugfix for PhpStorm 8.0.2+
    • Foreach type inference when using "as $index => $value" was assigned to $index instead of $value
    • Wrong type inference for $this->getResource() inside Collections
    • Go to Controller/Action from handle inside admin layout xml files was not working
    • Go to layout xml handle from action inside admin controllers was not working
  • New action: "Create Grid and Form". Use ALT+M anywhere to create a grid and form in the admin
  • URI autocomplete doesn't need the first character to work now. Example: Mage::getModel([CTRL+SPACE HERE])
  • Improved ::createBlock type inference.
  • Evaluate with Magento action remember the last evaluated code (no need to type it again when prompting)
  • New action: "Add to Solved Rewrite Conflict". Use ALT+M when editing some class with a rewrite conflict (you can mark the class that is solving the clonfict easier with this)
  • Autcomplete works for Mage::getStoreConfigFlag too. Mage::getStoreConfigFlag('[CTRL+SPACE HERE]')


  • Bugfixes:
    • NullPointer Exceptions
    • Improvements in Goto and Type inferences over factories strings
  • New action: "Create Controller". Use ALT+M > Create Controller anywhere.
  • New action: "Go To Controller". Use ALT+M > Go To Controller anywhere and type the URL or the frontname/controller/action
  • New action "Go to template from other package theme". Use ALT+M inside any .phtml file to jump to the same template from another package/theme
  • New Action to copy to clipboard relative path for templates and layout xml files. Use ALT+M > Copy Relative Path when editing some .phtml or .xml layout file
  • Go to Controller from handle in Layout XML files. Use CTRL+B when cursor is over any handle to jump to the Controller/Action for that handle
  • Go to Handle from Controller. Use CTRL+B when cursor is over any action method name (method declaration) inside a Controller class. Use CTRL+SPACE inside any xml file from the layout
  • Autocomplete for handle nodes in layout (xml) files now includes all possible controller/actions from the code
  • Type inference improvements. Now works with chained methods returning $this like ->load() and ->loadByAttribute and ->addAttributeToFilter, etc (even when Magento is defining, incorrectly, the @return type as Mage_Core_Model_Abstract instead of using @return $this)
  • Added autocomplete for registry keys from Magento core. Mage::registry('[CTRL+SPACE HERE]')
  • Added type/class recognition for registry keys from Magento core. Mage::registry('current_product')->[CTRL+SPACE HERE]
  • Added "go to character position" support for Magicento PHP Scripts. Just append "::POSITION" to the filepath to open (see more details when creating a Magicento Php Script)
  • Compare with original File Action now works with original files from "Community" pool
  • Evaluate in Magento is showing the result inside the information panel too (to allow copy and check previous results). And is not showing with a dialog if the result is too long.
  • Added autocomplete for system config paths inside $installer->setConfigData('CTRL+SPACE HERE')
  • Compare templates and layout files dialog now only shows packages and themes containing the file to compare (same relative path)
  • Compare With Original action works with original files not included in the current project (Mage.php not in the current project)


  • Bugfixes:
    • NullPointerExceptions
    • StringIndexOutOfBoundsException
    • Foreach item type detection conflict when using PhpDoc annotations
  • Goto for skin images. Use CTRL+B (CTRL+CLICK) when the cursor is over any skin url (filepath ending with .jpg .gif or .png)
  • Autocomplete and Goto for "helper" method inside Block classes: $this->helper('[CTRL+B] and also [CTRL+SPACE]')->[CTRL+SPACE]
  • Improved validation for Module Creator dialog
  • Magicento menu (ALT+M) now works when there isn't any opened file
  • New Copy Layout File action. ALT+M inside any .xml from the layout to copy it to another package/theme
  • New Compare Layout File action. ALT+M inside any .xml from the layout to compare it with another package/theme
  • Magicento PHP Scripts now supports interaction with the IDE. Use $GLOBALS['MagicentoActions'][some valid action here] (create a script to see the instructions)
  • New Magicento PHP Scripts: "copy to local" was updated (now it opens the local file created). Added Test script to show new Magicento Actions capabilities
  • Added new config for omitting Magicento notifications. Set a list of regular expressions and the messages matching that (and not marked internally as important) won't be show anymore
  • New Go to Observer action. Use ALT+M > Go To Observer and type the event name (or part of it)
  • Added foreach item type inference when looping collections annotated with @var. Ex: /** @var $collection Mage_Catalog_Model_Resource_Product_Collection */ foreach($collection as $item){ $item->[CTRL+SPACE] }
  • New intention for adding @var PHPDoc. Use ALT+ENTER when the cursor is over any $variable and select "Add @var PHPDoc" (this should be work better than the default intention from PhpStorm)
  • Performance optimizations


  • Bugfixes:
    • NullPointerExceptions
    • Autocomplete for helpers without "/data" was not working: Mage::helper('customer')->[HERE]
    • Goto observer|cron method from config.xml definition now works when the method is defined in a parent class too
    • Foreach model detection now recognizes collections from foreach(Mage::getResourceModel('collection_uri_here') as $model)
  • Added factory autocomplete for $this->helper([CTRL+SPACE HERE]) inside templates (.phtml files)
  • Source Model autocomplete inside system.xml now supports custom source models from current module
  • Goto for skin urls. Use CTRL+B (CTRL+CLICK) when the cursor is over any skin url (filepath ending with .js or .css


  • Bugfixes:
    • NullPointerExceptions
    • Nested objects inside statements beginning with Mage::get* were getting the wrong type
  • Improved autocomplete when using getCollection, getResource, _getResource, getResourceCollection methods
  • Added automatic Model detection inside foreach loop with collections. foreach($collection as $model) => no need to use @var for $model
  • Added GoTo for observer methods. Use CTRL+B when the cursor is over a method name inside some Observer class to jump to the event|cron node from the config.xml for that method.
  • Added data installer and mysql4 prefix options to Module Creator dialog
  • Add quotes automatically if needed when using factory autocomplete. Mage::getModel([CTRL+SPACE HERE])
  • Added autocomplete for SQL conditions in addAttributeToFilter and addFieldToFilter. Use Ctrl+Space *->addAttributeToFilter('*', array( '[HERE]' ))
  • Added Camelize Data Key intention for setData and getData methods. Use ALT+ENTER to convert ->setData('some_key', $someValue) to ->setSomeKey($someValue)
  • Added delay setting for PHP features. This could be useful if you have your own external script for uploading the eval.php to your server
  • Added button for testing PHP settings in Magicento Settings form


  • Bugfixes:
    • NullPointerExceptions
    • Bugfix "Add @method PhpDoc" action for PhpStorm 6.0.3


  • Bugfixes in Create Model Triad and Add @method PHP Doc actions
  • Added Time Out config for PHP features (File > Settings > Magicento)


  • Bugfixes:
    • NullPointerExceptions
    • Return correct type for chained methods from factory methods, ex: Mage::getModel('catalog/product')->getCategory()->[CTRL+SPACE]
    • Magicento Php Scripts Toolwindow Icon
    • Create Observer Method Intention in PhpStorm v7
    • Avoid false positive on malformed config.xml detection
  • New action for generating PhpDoc @method in models automatically. Just use ALT+M > Add @method Php Doc when the cursor is inside a Model. If you are using the Magicento Php Script: "Get Varien Object Keys" please update it (download it again)
  • New action for creating Model, ResourceModel and Collection. Use ALT+M > Create Model Triad anywhere
  • Go to cron method defintion from config.xml. Use Ctrl+B (or Ctrl+Click) when the cursor is over config/crontab/jobs/*/run/model/[HERE]
  • New Intention for creating cron method from config.xml (it will create the class too if it doesn't exist). Just use ALT+ENTER when the cursor is over config/crontab/jobs/*/run/model/[HERE]
  • Improved UI for setting rewrite conflicts already solved (so Magicento avoid notifications about those conflicts). Go to File > Settings > Magicento > Rewrite conflicts solved
  • Added autocomplete for "->setTemplate('[HERE]')"
  • Added autocomplete for "->getBlockClassName('[HERE]')"
  • Added autocomplete for "->getIdxName('[HERE]')"


  • Bugfixes:
    • NullPointerExceptions
    • Copy template action was using always the original filename
    • Code completion (Ctrl+Space) for factory strings now show always the full result (no need to press ctrl+space again)
    • Custom Magicento Template properties now are available when creating a Module with Magicento too
  • New autocomplete for get/set/uns/has methods on models (just use CTRL+SPACE as always, it works when you have the prefix already typed: Mage::getModel('catalog/product')->get[CTRL+SPACE HERE])
  • New action for saving the model data keys from the DB so Magicento can give you autocomplete for magic get and set methods. Use ALT+M > Search Model Data Keys whe the cursor is over Mage::getModel('[HERE]').
  • New Intention for creating layout xml file from config.xml. Use ALT + ENTER when the cursor is over the filename for the new layout update inside your confg.xml
  • New Intention for camelizing raw data keys, use ALT + ENTER when the cursor is over some: ->getsomething_here and it will be converted to ->getSomethingHere() (you need to prefix the method with get, set, uns or has to invoke the intention)
  • New config option for disabling autoformat when using autocomplete in layout xml files (File > Settings > Magicento > Enable Autoformat for XML code completion in Layour files)


  • Bugfixes:
    • NullPointerExceptions
  • New Intention for creating Observer from Mage::dispatchEvent calls. Use ALT + ENTER when the cursor is over the event name and select Create Observer, it will create the xml definition on the selected module and the observer class/method if it doesn't exist.
  • Extended list in code completion list for events in config.xml.


  • Bugfixes:
    • Tooltips for long labels on Magicento config panel
    • Toggle template hints works with FPC enabled too
    • Assure modules are always sorted alphabetically in rewrite class/controller action dropdown
  • Added ${MAGENTO_MODULE_VERSION}, ${MAGENTO_MODULE_NAMESPACE}, and ${MAGENTO_MODULE} properties to File Templates (you can use them in your templates)
  • Added support for projects with Magento core code in External Library (you need to set the Mage.php file path to that external path). All files created by Magicento are created in the current project.
  • Enhanced Copy Template action. Now is possible to change the target file path
  • New "Compare Template" action (Alt+M when editing any .phtml file) for comparing the template with some template with the same relative path but in a different package or theme
  • Added GoTo for Observers <method> in config.xml (use Ctrl+B etc when the cursor is over the method name on the observer definition inside config.xml)
  • New Magicento Intentions (Alt+Enter):
    • Create Template File (Alt+Enter over some relative path to any .phtml, this works in php and xml code too)
    • Create Observer Method (Alt+Enter when the cursor is over some <method> value in config.xml, this will create the observer too if it doesn't exist yet)
  • Added option for disabling the autodisable Magicento feature when the IDE restarts after some crash
  • Added action for enabling Magicento quickly when it is disabled (Alt+M > Enable Magicento)


  • Bugfixes:
    • Bugfix for Action: Goto Block definition in Layout
    • NullPointerExceptions
  • Added var $GLOBALS['Magicento']['current_project_path'] to php scripts


  • Bugfixes:
    • Freeze IDE bugfix (you need PHPStorm 6.0.3+)
    • Detect rewrite conflicts
    • Detect factories with params
    • IndexOutOfBounds and NullPointer exceptions
  • Added support for the new EP in PhpStorm 6.0.3
  • Added toolwindow for creating php scripts, now you can extend the features from Magicento using your custom code, in PHP! (tutorial here:
  • Added new setting for enabling/disabling automatic autocomplete (this could be useful if PHPStorm stills freezing)
  • Added check for detecting when PHPStorm hangs so the next time you start it Magicento will be disabled (and you don't need to uninstall it, but if that doesn't work either please check
  • Create PhpStorm Meta Namespace action is enabled again (Alt+M anywhere). You can use this action for getting safe automatic autocomplete on factories even when that feature is disabled from Magicento Settings
  • New action "Go to layout definition", use Alt+M inside any .phtml file to jump to the block/action node where that template is used
  • New action "Check rewrite conflicts", use Alt+M anywhere to check if there is some rewrite conflict in your Magento
  • New settings for Rewrite conflicts checks. Go to File > Settings > Magicento
  • Auto check for malformed nodes in config.xml (for example class names with a new line at the end)
  • Better and more autocomplete features for config.xml and layout xml
  • Autocomplete for the correct collection/resource when chaining Mage::getModel(...)->getCollection() and Mage::getModel(...)->getResource()
  • Added extra protection for IDE freezes. Now if the IDE hangs you can kill the process and when you start the IDE again Magicento will be disabled automatically, so you don't need to remove it and reinstall it. And after restarting the IDE you can enable Magicento again and it should work (IDE hangs should not happen too often any way)
  • Support for PHP features with remote hosts (see how to configure it properly here: )
  • New action for clearing Magicento cache (this could be useful when Magicento doesn't seem to be reading the lastest changes)


  • Bugfixes:
    • Freeze IDE bugfix
  • Check for rewrite conflicts when using Rewrite Class action
  • Added support for the 1.8/1.13 $_factory Mage factory method wrapper
  • IMPORTANT! please check this brief tutorial for solving problems with Magicento and take advantage of all the features


  • Bugfixes:
    • Rewrite Class Action bugfix


  • Bugfixes:
    • BlockTypeProvider bugfix


  • Bugfixes:
    • Better autocomplete for resource models uri (factory string). Mage::getResourceModel('[CTRL+SPACE HERE]') and $this->_init('[CTRL+SPACE HERE]') inside Models
    • Quotes in Add Translation action are not escaped now when they are added to the .csv file
    • Rewrite Class Action bugfix
  • Factories are recognized automatically, PHPSTORM META file is not needed anymore (requires PHPStorm 6+)
  • Block type is infered automatically inside template (.phtml) files for $this var (this feature can be enabled/disabled from Magicento Settings)
  • Code completion works automatically for $this->helper('...')->[CTRL+SPACE HERE] inside .phtml files
  • Autocomplete for observer class name in config.xml is offering the factory version of the class name too


  • Bugfixes:
    • Autocomplete for class names
    • Generate mapping for Helper classes not defined in config.xml


  • Bugfixes:
    • Compiled with JDK6 for better compatibility
    • Suggestions from Magicento when using code completion for "extends" have higher priority on the list now (they should appear first always)


  • New action "Create PHPSTORM_META namespace":
    use Alt+M when editing any file to select this action and create a new file in the project rot called "magicento.phpstorm.meta.php", this file will contain information used by PHPStorm (+v6.x) to recognize the factory class type automatically
  • New action "Add Factory to PHPSTORM_META Namespace":
    use Alt+M when the cursor is over some factory string, ie: Mage::getModel('[HERE]'), to update the PHPSTORM_META file with the correct class for that factory.


  • Bugfixes:
    • NullPointerExceptions
  • Enhancend goto (Ctrl+B, Middle click, Ctrl+Click) for Layout XML
    • Now it works with "alias" inside templates which are assigned directly from the Block class (like $this->getChildHtml('topLinks') inside header.phtml)
    • Goto handle definition from >update handle="[HERE]"<
  • Enhanced Rewrite Class action
    • Added support for Rewriting controllers (Alt+M > Rewrite Controller when editing some controller, put the cursor inside the class).
    • Suggested class name now includes the original module name too to follow convention and avoid collitions
    • Rewrite works for default classes from magento even when they are not declared in config.xml
  • Autocompletion for xml files inside app/etc/modules/*.xml


  • Bugfixes:
    • Disable magicento automatically for non Magento projects
    • NullPointerExceptions
  • Added magento dictionary from
  • Autocomplete observer method names in config.xml in camelCase to follow coding standard
  • Autocomplete for common "extends" (use Ctrl+Space after extends keyword)
  • New actions for translating text.
    • Select any html text or any string in php and use Alt+M > Translate Text for wrapping that text with $this->__() *
      (Tip: use Ctrl+W for selecting the text to translate quickly)
      * You could do the same using the native Surround With Live Templates functionality (check
    • Use Alt+M > Add Translation when the cursor is over $this->__('[HERE]') to define a new translation (it will be appended to the selected csv file, or create a new csv if not exist).


  • Bugfixes:
    • Small bugfix for NullPointerException


  • Bugfixes:
    • Reset installer action was showing an error message even when it was working fine
    • Flush FPC is working with PHP too and not only with HTTP
    • PHP features using HTTP can return HTML and XML tags now
    • Toggle template hints should work on any website and store now too
  • Enhanced Go to Block action (now it searches on addItemRenderer actions too)
  • Evaluate in magento can now be used to execute arbitrary PHP code (just go to Magicento Settings and uncheck the new option "use var_dump"). Is your responsability to show or not some output, write valid PHP code (included semicolon)
  • Layout features:
    • XML code completion (use Ctrl+Space on nodes and attributes)
    • XML documentation (use Ctrl+Q over any node or attrbiute)
    • Goto template action (use Alt+M when editing some Block)
    • Goto xml handles (use Ctrl+B or middle click on any handle to go to other declarations of the same handle in another files)
    • Goto xml layout definitions for block names inside layout xml (use Ctrl+B or middle click over any name=[HERE] on any layout xml file)
    • Goto xml block definition in layout Action (use Alt+M when editing any Block class to go to the block node definition in layout xml)
    • Goto xml layout definitions for block names inside templates (use Ctrl+B or middle click over any name in getChild, getChildHtml, getBlock, getBlockHtml([HERE]) call)
    • Autocomplete for getChild, getChildHtml, getBlock and getBlockHtml on templates (use Ctrl+Space)
    • Config options for enabling/disabling layout features and choosing packages and themes (File > Settings > Magicento)


  • Bugfixes:
    • Fixed Rewrite Class action (it was not generating the correct node inside config.xml)


  • Bugfixes:
    • Fixed autodetect for Mage.php
    • Fixed PHP features using HTTP (it should work fine on Virtual Machines now too)
    • Fixed Layout xml code completion errors
  • Added autocomplete for ->getTable([CTRL+SPACE here]) calls
  • Added autocomplete for ->createBlock([CTRL+SPACE here]) calls
  • Added autocomplete for ->_init([CTRL+SPACE here]) calls on models, resources and collections
  • Added action for flushing Magento cache (Alt+M)
  • Added action for rewriting Blocks, Helpers and Models (Alt+M over the original class to rewrite)

Video with all the features:


  • Bugfixes:
    • Fixed bug in notification of duplicate rewrites
  • New action for reseting core_resource table so the installer script can be executed again. Just use Alt+M when editing any installer script
  • New action for Going to the Block from any template. Just use Alt+M when editing any template file
  • New action for adding @var $this to any template. Just use Alt+M when editing any template file
  • Starting code completion on layout xml files. In this release only handles are supported.


  • Bugfixes for PHPStorm 5


  • Bugfixes:
    • Fixed bug for settings with multiple projects
    • Fixed bug for Access is allowed from event dispatch thread only
    • Fixed bug in magicento settings panel
  • New action for creating a new module. Just use Alt+M (Option+M) and complete the form
  • Magicento now will detect automatically when you have multiple rewrites on the same class, and will show you a warning
  • Autocomplete for "sections/tab" in system.xml
  • Added goto observers feature: use Ctrl+B (or middle click) over the event name in
    Mage::dispatchEvent('EVENT_NAME', $params);
  • New action for copying the current template to a new package/theme, just use Alt+M (Option+M) when editing any .phtml file
  • New action for comparing the current file with the original one, it works for any file type. For design it will try to compare against "base/default" for frontend and against "default/default" for adminhtml. For files inside /code/local|community it will try to compare against /code/core/
  • New setting option for executing PHP code in magento using an HTTP request directly (useful when PHP is not accesible directly for example when using VM).
  • New action for setting the store (used for evaluating code in magento), just use Alt+M (Option+M)
  • New action for enabling/disabling template hints (Alt+M)