Your store might work, that's true, as long as you have admin panel Graphs also disabled. In reality though it's all up to programmers and how they're handling situations with modules being disabled. The issue is, that Magento 1.x does not have a handling mechanism that would automatically solve that problem for you. If you look at
public function getResourceModelInstance($modelClass='', $constructArguments=array())
{
$factoryName = $this->_getResourceModelFactoryClassName($modelClass);
if (!$factoryName) {
return false;
}
return $this->getModelInstance($factoryName, $constructArguments);
}
it will return false
when module is disabled. Which means all Mage::getModel('reports/..
will be false
and whatever method you'll try to call on that (supposed to be) object will throw you a Call to a member function on a non-object
php Fatal error.
While Magento team did their job done (well, they didn't actually, if you enable Charts your admin should break on Dashboard for example), you can't know how 3rd party extensions will handle those situations in case they try to use the Reports
module.
So, if you make sure you're handling all the situations where reports
are called, then you can disable it. Otherwise, better not to.
I can add to that:
Mage_GiftMessage
- seams it's not disableable in 1.8
Mage_XmlConnect
- if you don't have / need a mobile app.
Mage_Authorizenet
Mage_Paypal
(if not used as a payment method)
Mage_Paygate
(Only if you disable Mage_Paypal, Mage_PaypalUk and Mage_Authorizenet)
Mage_Weee
(only if you disable Mage_XmlConnect also)
Mage_Usa
- only in ce-1.8.1.0. (see below why)
Mage_GoogleCheckout
- can only be disabled in ce-1.8.1.0 and only if you disable Mage_Usa
. It doesn't work for previous versions because of this http://www.magentocommerce.com/bug-tracking/issue/?issue=14359
Mage_Oauth
- if you don't need the REST API
Mage_Api
Mage_Api2
- only if you disable the Mage_Oauth
also.
As a general rule, you can disable (almost) any module, but you have to check in app/etc/modules/*.xml
if there are any other modules depending on the module you want to disable. If there aren't any you can do it. If there are you must disable those also.
As an exception from the general rule, there are some modules that can break the admin if you disabled them because of the way Magento 1.x is build. the Mage_Adminhtml
module contains references to the other modules (like customer, sales, ...). Looks like In Magento 2.0 this will be changed.
Best Answer
Yes it does. First of all, less modules means less code to (potentially) load and process. Next to that, a lot of modules, like for example the Mage_Rss module run a lot of code in the background like forcing reindexes on certain events.
On the method best to use: disabling a module using
System > Configuration > Advanced
only suppresses the output of a module while still including the code of that Module in the shop. This is handy when you don't want a modules functionality but you need it's Models or Blocks for example because other (3th party) extensions depend on it. Disabling it usingapp/etc/modules/*.xml
will completely remove it from the installation so performance wise this is the best option.I usually disable the following extension via XMl
and via
System > Congiguration > Advanced
theMage_Adminnotification
which suppresses those annoying popups in the backend.You can probably disable several more core extensions depending on what you're using or not. Just make sure that you don't compromise the stability of Magento. I guess this will take some trial and error.