Magento 2.0 Stable - L'activation du module personnalisé génère une erreur
-
13-12-2019 - |
Question
Télécharger
Aujourd'hui, j'ai téléchargé la version complète de Magento 2.0 sur le site Web de Magento.J'ai téléchargé le Version complète avec exemples de données (ZIP avec exemples de données) et je l'ai installé.Je voulais tester si mon module personnalisé construit dans RC-1 fonctionnait toujours, mais lorsque j'ai essayé d'activer le module, j'ai eu une erreur.
Installation des modules
Quand j'ai voulu installer mon module personnalisé, j'ai remarqué le app/code
répertoire a disparu et après quelques clics, j'ai constaté qu'il avait été déplacé vers le vendor
annuaire.J'ai supposé que cela avait été fait par composer, j'ai donc décidé d'ajouter mon module au composer.json
à la racine du document.En cours d'exécution composer update
installé le module dans le répertoire du fournisseur.
Erreur
J'ai essayé d'activer le module en exécutant la commande suivante depuis mon répertoire racine :
PHP -f bin/magento module:enable --clear-static-content Test_Module
http://devdocs.magento.com/guides/v2.0/extension-dev-guide/enable-module.html
Malheureusement, j'obtiens l'erreur suivante :quelqu'un a une idée de ce qui ne va pas ?
[InvalidArgumentException]
Aucune commande n'est définie dans l'espace de noms "module".
La solution 2
Pour l'instant, je l'ai corrigé en le faisant sans composer.J'ai créé manuellement un code
répertoire dans le app
répertoire à la racine de Magento.Ici, j'ai ajouté le module dans /Vendorname/Modulename
ce qui a fait l'affaire.
Ce n’est pas vraiment comme je voulais le faire, mais pour l’instant, cela suffira.Si quelqu'un a une meilleure réponse et peut me dire pourquoi ce que j'ai fait de mal à la manière du compositeur, faites-le-moi savoir.
Autres conseils
Donner le contrôle total (lecture/écriture/exécution) à var et pub Le répertoire a résolu ce problème pour moi.
sudo chmod -R 777 var pub
Ou, vous pouvez également essayer d'exécuter la commande en utilisant sudo.
sudo php -f bin/magento module:enable --clear-static-content Test_Module
Dans mon cas, il y avait des erreurs dans le chemin du schéma dans mon module.xml
fichier, ainsi que quelques lignes commentées dans composer.json
que Magento 2 n'a pas aimé.Une fois que j'ai clarifié ces éléments, les modules se sont enregistrés.
Par exemple, dans module.xml
, le chemin d'accès au schéma XSD était incorrect.Certaines personnes ont le chemin comme ceci :
../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd
(notez la casse des lettres !)
où ça aurait dû être
../../../../../vendor/magento/framework/Module/etc/module.xsd
Il y avait aussi schema_version="1.0.0"
dans le module
nœud qui était obsolète (?), je l'ai donc supprimé.
De plus, il y a un élément « suggérer » dans le composer.json
objet dont je n'avais pas besoin et que j'avais commenté avec des barres obliques, ce qui provoquait une erreur.
Une fois que je les ai clarifiés, tout s'est enregistré correctement.
J'ai eu le même problème et j'ai suivi plusieurs suggestions stupides pour résoudre le problème, comme supprimer mon composer.json quelque chose comme ça.Mais cela n'a pas résolu mon problème.Aujourd'hui, j'ai de nouveau été confronté au problème et j'ai essayé une nouvelle approche pour retracer le problème.Tous les détails et captures d'écran sont dans mon article de blog personnelhttp://david.firstbiz.cc/blog_detail.php?id=115J'ai décrit mes étapes ici:
- pour CLI, veuillez ajouter "-vvv" et il affichera les chemins de trace des fonctions
- essayez de charger n’importe quelle page de produit et vérifiez le journal des erreurs de votre serveur Web et vous pourrez voir plus de détails.
- le nom de la classe et le nom du fichier doivent être identiques (*c'est le cas auquel j'ai été confronté)