Difference between getSingleton and getModel in Magento
Hi friends,
Some people ask about the difference between
Mage::getModel() and Mage::getSingleton()
in Magento. Here is the difference between these two:
Mage::getModel('module/model')
will create a new instance of the model object (if such object exists in configuration)
So if we write:
Mage::getModel('catalog/product'),
it will create new instance of the object product each time. So,
$p1 = Mage::getModel('catalog/product');
$p2 = Mage::getModel('catalog/product');
Then $p1 is a one instance of product and $p2 is another instance of product.
While Mage::getSingleton('catalog/product') will create reference on existing object (if object does not exist then this method will create an instance using ::getModel() and returns reference to it).
So, if
$p1 = Mage::getSingleton('catalog/product');
$p2 = Mage::getSingleton('catalog/product');
Then $p1 and $p2 both refer to the same instance of product as reference $p2.
That's all.. Cheers.. :)