quelle est la différence entre désactiver le module de sortie et module actif = vrai

16

Dans magento, j'en suis venu à savoir que nous pouvons désinstaller notre module de deux manières

  1. En naviguant dans le backend Magento vers Système> Configuration> Avancé> Désactiver la sortie des modules, nous pouvons facilement désactiver certains modules.
  2. Dans le répertoire app / etc / modules, en changeant la balise active de true à false.

Puis-je savoir quelle est la différence exacte entre ces deux techniques? C'est très utile si quelqu'un donne une réponse plus détaillée.

Charlie
la source
1
Bonne question ..
Amit Bera
@AmitBera, Merci
Charlie

Réponses:

17
  1. System > Configuration > Advanced > DisableLa sortie des modules ne désactivera pas réellement ce module. Cela fonctionne comme son nom l'indique, désactivez la sortie des modules.

    Quand on regarde

    abstract class Mage_Core_Block_Abstract

    Dans

    final public function toHtml()
    {
        Mage::dispatchEvent('core_block_abstract_to_html_before', array('block' => $this));
        if (Mage::getStoreConfig('advanced/modules_disable_output/' . $this->getModuleName())) {
            return '';
        } 
    
    // It is checking If its in disabled mode then just return blank output
    .......
    }
  2. Bien que le app/etc/modulesmodule complètement désactivé

Keyur Shah
la source
Réponse parfaite ...
Kartik Asodariya
3
  1. En naviguant dans le backend Magento vers Système> Configuration> Avancé> Désactiver la sortie des modules, nous pouvons facilement désactiver certains modules.

    - Cela signifie que le module ne sera pas rendu, n'envoie pas de sortie à l'écran mais que votre module s'exécute. Jetez un œil app / code / core / Mage / Core / Block / Abstract.php -> toHtml

    if (Mage :: getStoreConfig ('advanced / modules_disable_output /'. $ this-> getModuleName ())) {return ''; }

  2. Dans le répertoire app / etc / modules , en changeant la balise active de true à false.

    ---- true / false définit que votre module sera chargé ou ignoré. Jetez un oeil app/code/core/Mage/Core/Model/Config.php->loadModulesConfiguration

foreach ($ modules as $ modName => $ module) {if ($ module-> is ('active')) {-------}}

Sohel Rana
la source
2

Quand vous venez Disable Modules Output, cela signifie que le module ne rendra rien à l'écran, en termes de programmation: la _toHtml()fonction ne retournera rien. Tout le reste (observateurs, réécritures, contrôleurs) sera toujours exécuté.

Idéalement, si vous souhaitez désactiver un module correctement, définissez "Actif" sur falseet assurez-vous qu'aucun autre module ne l'étend.

Mayers
la source
2

Configuration > Current Configuration Scope > Advanced > Advanced > Disable Module Output.Cette action désactive uniquement la sortie du module comme indiqué. Si votre module utilise, disons que certaines fonctionnalités d'Observer se connectent à une partie du système et effectuent des remplacements, ces actions ne seront pas désactivées.

Pour désactiver complètement le module, vous devez aller dans le fichier de configuration du module, comme /etc/NAMESPACE_MyModule.xml, et définir son paramètre actif sur false, comme:

< ?xml version="1.0"?>
<config>
<modules>
<NAMESPACE_mymodule>
<active>false</active>
<codepool>local</codepool>
</NAMESPACE_mymodule>
</modules>
</config>
Qaisar Satti
la source
Si nous changeons la balise active en false, est-ce que cela charge le module? Comment Magento gère-t-il cela?
Charlie
il charge toujours le module qu'il affichera dans système> configuration> avancé. ne charge pas le fichier de module comme etc / config.xml.
Qaisar Satti,
0

"Désactiver la sortie des modules" désactive uniquement la sortie de bloc définie par l'extension. Il ne saute pas l'exécution du module de son code si, par exemple, il a des observateurs définis.

Elias
la source
Quel fichier va charger et quels fichiers ne sont pas dans les deux cas?
Charlie