Question

Lorsque vous pensez à optimiser la vitesse de Magento, il existe plusieurs possibilités comme la mise en cache (PHP, base de données, même pleine page Caches) pour accélérer votre site.

Une autre possibilité est de réduire la quantité de traitement qui est fait, à savoir réduire le nombre de modules en cours d'exécution dans votre magasin.

Récemment, je me suis demandé s'il est possible / sûr de désactiver le module Mage_Reports.

Ceci est dans le fichier app/etc/modules/Mage_All.xml comme

<Mage_Reports>
    <active>true</active>
    <codePool>core</codePool>
    <depends>
        <Mage_Customer/>
        <Mage_Catalog/>
        <Mage_Sales/>
        <Mage_Cms/>
    </depends>
</Mage_Reports>

Il est livré avec le noyau et dépend de plusieurs autres modules.

Cependant, je ne vois pas d'autres modules ayant Mage_Reports comme une dépendance.

Je désactivé dans un magasin de test et tout semble fonctionner très bien.

Question => Est-il vrai, qu'en plus de perdre les données de rapports, bien sûr, le magasin peut bien fonctionner sans ce module?

Ou sont-il des points que mon magasin pause lorsque ce module n'est pas activé?

Était-ce utile?

La solution

Votre magasin travail de puissance, qui est vrai, aussi longtemps que vous avez le panneau d'administration Graphiques également désactivé. En réalité, si elle est tout pour les programmeurs et la façon dont ils sont la gestion des situations avec des modules étant désactivé. La question est que 1.x Magento ne dispose pas d'un mécanisme de traitement qui permettrait de résoudre automatiquement ce problème pour vous. Si vous regardez

public function getResourceModelInstance($modelClass='', $constructArguments=array())
{
    $factoryName = $this->_getResourceModelFactoryClassName($modelClass);
    if (!$factoryName) {
        return false;
    }
    return $this->getModelInstance($factoryName, $constructArguments);
}

il retournera false lorsque le module est désactivé. Ce qui signifie que tous les Mage::getModel('reports/.. sera false et quelle que soit la méthode que vous allez essayer de faire appel à ce que (censé être) objet vous jeter un Call to a member function on a non-object php Erreur fatale.

Alors que l'équipe Magento ont fait leur travail fait (bien, ils ne fait pas, si vous activez graphiques votre administrateur doit briser le tableau de bord par exemple), vous ne pouvez pas savoir comment les extensions 3ème partie va gérer ces situations au cas où ils essaient d'utiliser le module de Reports.

Donc, si vous assurez-vous manipulez toutes les situations où reports sont appelés, vous pouvez la désactiver. Sinon, mieux vaut ne pas.

Autres conseils

Je ne peux pas vous dire ce qui se passera si vous désactivez le module mais je peux vous dire comment vous pouvez (probablement) arrêter son impact de traitement sans le désactiver.

Toutes ses coûts de traitement provient d'observateurs. Et sans doute un emploi Xeon mais qui ne sont pas pertinentes. Si vous pouvez arrêter l'observation des événements que vous pouvez éliminer les frais généraux.

La façon naïve serait de modifier le config.xml et commentez-les. Ne pas faire cela.

La bonne façon serait de créer votre propre module qui dépend de Mage_Reports et juste un config.xml. Dans ce définir une balise de fin avant et copier dans tous les observateurs de Mage_Reports. Modifiez ensuite l'événement, ils observent une certaine absurdité événement réel qui ne sera jamais me faire virer. Ensuite, ajoutez un marqueur sous l'observateur nommé type d'une valeur de personnes handicapées.

Si vous regardez événement dispatch dans app.php vous serez en mesure de voir que cela fonctionne. Vous leur écrasez avec un observateur désactivé. Rien ne s'appelle et se casse rien!

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top