Le module personnalisé Magento 2 ne se charge pas
-
12-12-2019 - |
Question
J'ai installé une copie locale de Magento 2 dans mon XAMPP et j'ai appris à connaître la nouvelle structure.J'ai cependant rencontré un problème en essayant de configurer un module de base.
J'ai créé la structure de fichiers/dossiers suivante
app/code/Heirik/Test/etc/module.xml
Dans ce fichier, j'ai ce qui suit
<?xml version="1.0"?>
<config>
<module name="Heirik_Test" schema_version="2.0.0">
</module>
</config>
J'ai actualisé le cache du magasin, mais lorsque je vais dans magasin> configuration> avancé, le module ne se charge pas dans la liste.Selon les documents de développement les plus récents, il n'est plus nécessaire de définir le module comme étant actif dans le XML.
Je sais que Magento lit le module.xml car si je supprime le paramètre schema_version, j'obtiens une erreur.
La solution
avec les dernières constructions de Magento, cela a changé en
php -f bin/magento module:enable --clear-static-content Module_Name
php -f bin/magento setup:upgrade
Autres conseils
Après la recherche, l'essai et l'erreur, j'ai localisé la réponse suivante
Pour une instance Magento existante, vous devez enregistrer un module personnalisé comme suit:
- Modifier le fichier app / etc / config.php et ajoutez votre module là-bas et spécifiez la valeur "1" (activée)
- Puis rafraîchissez le cache.
Donc, dans mon cas, j'ai dû ajouter
'Heirik_Test' => 1,
dans la matrice de modules Inside App / etc / config.php
ou encore plus facile, est arrivé à la mage installer dir et exécuter:
php -f setup/index.php module-enable --modules=MODULENAME
php -f setup/index.php update
Donc, mon problème lorsque j'essayais d'enregistrer un module personnalisé, en exécutant Magento 2.2.0, était que le fichier généré par le compositeur vendor/composer/autoload_files.php
n'a pas été mis à jour lorsque j'ai exécuté la mise à jour du compositeur.
Peu importe ce que je faisais, l'ajouter manuellement au config.php
cela donnerait l'impression que cela fonctionnait mais après avoir exécuté magento setup:upgrade
le module n'était plus enregistré et n'exécutait aucun script d'installation/mise à niveau.
Après avoir mis à jour correctement le compositeur et vérifié trois fois, il était dans le autoload_files
, le module s'est enregistré et j'ai soupiré de soulagement.
Juste quelque chose dont il faut être conscient.J'espère que si quelqu'un d'autre a des problèmes similaires, cela pourra nous éclairer.
Le fichier de votre module nommé module.xml
Fichier de configuration La balise doit avoir XML Schema et son emplacement XSD qui valident votre structure de fichier generaCoDiCodeCode.La valeur du schéma devrait être comme
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd"