Désactiver les modules - amélioration des performances?

27

Cette question comprend 2 parties:

  1. La désactivation des modules principaux améliore-t-elle les performances globales du magasin et, dans l'affirmative, doit-elle être désactivée dans l'administrateur (c'est-à-dire désactiver la sortie frontale) ou désactivée via config.xml pour que cette amélioration des performances soit visible.

  2. S'il y a une amélioration des performances à gagner, quels modules sur un stock, la construction CE 1.7.0.2 peut être désactivée en toute sécurité, via la méthode décrite dans la partie 1.

Marty Wallace
la source

Réponses:

27
  1. Oui. Tout d'abord, moins de modules signifie moins de code à (potentiellement) charger et traiter. À côté de cela, beaucoup de modules, comme par exemple le module Mage_Rss, exécutent beaucoup de code en arrière-plan, comme forcer les réindexations sur certains événements.

    Sur la meilleure méthode à utiliser: la désactivation d'un module en utilisant System > Configuration > Advanceduniquement supprime la sortie d'un module tout en incluant le code de ce module dans la boutique. C'est pratique lorsque vous ne voulez pas de fonctionnalité de modules mais que vous avez besoin de ses modèles ou blocs par exemple car d'autres extensions (tierces parties) en dépendent. La désactiver en utilisant app/etc/modules/*.xmlle supprimera complètement de l'installation, donc en termes de performances, c'est la meilleure option.

  2. Je désactive généralement l'extension suivante via XMl

    • Mage_Rss
    • Mage_PayPalUk
    • Mage_Tag (lorsqu'il n'est pas utilisé dans un projet)
    • Mage_Poll (car qui utilise quand même les sondages)
    • Phoenix_Moneybookers
    • Mage_Sendfriend
    • Mage_Rating (lorsqu'il n'est pas utilisé dans un projet)
    • Mage_Bundle (encore une fois, si non requis par le client)
    • Mage_Downloadable (voir ci-dessus)

    et via System > Congiguration > Advancedle Mage_Adminnotificationqui supprime ces popups ennuyeux dans le backend.

    Vous pouvez probablement désactiver plusieurs extensions principales en fonction de ce que vous utilisez ou non. Assurez-vous simplement de ne pas compromettre la stabilité de Magento. Je suppose que cela prendra quelques essais et erreurs.

Sander Mangel
la source
1
Existe-t-il un moyen de les désactiver sans modifier les fichiers xml principaux?
Marty Wallace
1
S'il n'a pas déjà son propre fichier XML, vous pouvez aller de l'avant et le créer, créez simplement app/etc/module/Mage_Rss.xmlpar exemple et assurez-vous simplement d'ajouter le codePool (core) et la balise active (false)
Sander Mangel
J'ai peut-être confondu des choses à ce moment :). Je veux dire que puis-je désactiver Mage_Centinel par exemple, sans modifier Mage_Centinel.xml, c'est-à-dire utiliser mon propre fichier xml pour le désactiver. De cette façon, je ne changerais pas le code principal
Marty Wallace
Ahhh d'accord, j'ai mal compris. Eh bien, vous pouvez probablement le désactiver car tous les fichiers XML sont fusionnés en un seul, donc si vous l'ajoutez dans la balise config.xml de votre extension, il devrait être récupéré, mais à mon avis, il est plus `` propre '' de le faire à partir du app/etc/modulesrépertoire. Mais c'est juste moi :)
Sander Mangel
2
Avant de désactiver les sondages, n'oubliez pas de supprimer l'exemple de sondage "Choisir les couleurs"; J'ai trouvé des modules tiers qui peuvent afficher le contenu du sondage même si le module est désactivé.
lrkwz
14

Malgré le retard avec une réponse, je voudrais répondre à la question

  1. Vous gagnez encore plus de performances si vous supprimez physiquement les fichiers.
  2. Tout simplement, sauf Mage_Core;-)

Mais pour désactiver les modules à couple serré, vous devez installer un autre module qui veille à ce que rien ne se brise. J'ai donc développé: https://github.com/Zookal/magento-mock

Zookal Mock: Détection automatique transparente des modules et extensions de base désactivés et fourniture d'objets fictifs pour ne pas casser Magento. Rien à configurer. Aucune classe ne réécrit. Un seul observateur. Fonctionne hors de la boîte. Vous pouvez même supprimer physiquement les fichiers!

Par exemple, lorsque vous désactivez Mage_Wishlistou que Mage_Newslettervotre backend -> Client -> Modification du client générera des erreurs étranges. Utilisez donc l'extension Mock!

Vous pouvez même désinstaller les anciens modules de paiement qui ont des entrées dans le sales_flat_order_paymenttableau et cassent normalement votre backend -> Sales -> Order View mais l'extension Mock a un travail transparent pour vous.

Une chose à considérer: cela ne fonctionne pas en ligne de commande.

Cyrill
la source
10

Voir la réponse de Marius concernant une méthode XML simple et rapide pour désactiver les modules. Créez un seul fichier zzz_Disabled_Modules.xmlavec le contenu

<?xml version="1.0"?> 
<config>
    <modules>
        <Mage_Rss>
            <active>false</active>
        </Mage_Rss>
        <Mage_PaypalUk>
           <active>false</active>
        </Mage_PaypalUk>
        <Phoenix_Moneybookers>
            <active>false</active>
        </Phoenix_Moneybookers>
        <!-- all other modules here -->
    </modules>
</config>

Imaginer! Un .gitignore pour les modules Magento!

Avec cela, vous pouvez facilement voir quels modules vous avez activés / désactivés en un coup d'œil.

tzvi
la source
2

Comme le dit @Sander Mangel, la désactivation des modules par défi peut avoir un gros gain de performances, bien que ce que vous désactivez soit vraiment une chose magasin par magasin. Il y en a normalement beaucoup dont vous n'avez pas besoin. Si vous n'utilisez pas la désactivation de la liste de souhaits, cela Mage_Wishlistfait toute la différence.

Un autre gain est la désactivation Mage_Log. Cela peut être mieux fait via local.xml.

user3412
la source