PHPStorm knows a lot, but unfortunately it does not know the objects that Magento 1 factory methods return. This affects the autocomplete and go to declaration on a lot of methods but, with a small shell script, we can teach PHPStorm the proper class map. The shell script is located in the following GitHub repository.
This article features a step-by-step guide on how to install and use the script to generate the class map and, in the second part, it will present ways to improve autocompletion using the @var PHPDoc comment syntax.
I know there is a PHPStorm plugin called Magicento that will do this and a lot more. But if you don’t feel like spending money on it, this is a quick and easy solution.
Supported Factory Methods
Mage::getModel()Mage::getSingleton()Mage::getResourceModel()Mage::getResourceSingleton()Mage::getBlockSingleton()Mage::helper()Mage_Core_Model_Factory::getModel()Mage_Core_Model_Factory::getSingleton()Mage_Core_Model_Factory::getResourceModel()Mage_Core_Model_Factory::getHelper()Mage_Core_Block_Abstract::helper()Mage_Core_Model_Layout::createBlock()Mage_Core_Model_Layout::getBlockSingleton()Mage_Core_Block_Abstract::getHelper()
This script respects class rewrites. This means that if you rewrite the Mage_Catalog_Model_Product Mage_Review_Block_Product_View $this */ Please add this into your edited files (excluding the core/base template that you should not edit). It will help you and other developers in the future. If you use a collection object in a foreach loop, you will see that objects inside it have problems with autocomplete or go to declaration. To fix this, you can add a @var PHPDoc comment like this:[/fusion_text]2. Collection used in foreach loop
/** @var Mage_Catalog_Model_Resource_Product_Collection
The same syntax can be used in @return or @param PHPDoc comments.

3. Autocomplete on a method chain
$productFinalPrice = Mage::getModel('catalog/product')->load(1)->getFinalPrice();
Trying to go to getFinalPrice() method is not going to work.
This is because the load() method that is implemented in the Mage_Core_Model_Abstract class has the @return Mage_Core_Model_Abstract in the PHPDOC comment. If the Magento core team had used @return $this instead, this would have worked.
To fix this, you can reformat the code and use a @var PHPDoc comment to let PHPStorm know the correct class for this.

Now the Ctrl+Click on getFinalPrice() method and the autocomplete will work.
If you’re looking to learn more, check out these tips & tricks using PHPStorm for Magento developers.
Article written by Claudiu Marginean.