Certains articles encouragent à créer des extensions personnalisées dans app/code
et d'autres encouragent à les créer sous vendor
. Ces deux méthodes conviennent-elles toutes les deux?
Et si je veux remplacer un module dans vendor
? Dois-je écrire mon module personnalisé également dans le vendor
dossier ou app/code
?
Agissent-ils comme des pools de codes comme dans Magento 1.x?
Veuillez clarifier le but de chaque annuaire.
magento2
magento-2.1
extensions
Sukeshini
la source
la source
Réponses:
Vous pouvez regarder les dossiers
app/code
etvendor
les codepools dans M1, mais ce ne sont pas vraiment des codepools.Il n'y a pas de concept de "pool de codes" dans M1.
vendor
dossier est pour les modules que vous téléchargez via composer. Vous ne devez pas écrire de code dans ce dossier.app/code
est votre terrain de jeu. Ajoutez vos propres extensions ici.Si vous devez réécrire / étendre quelque chose dans le
vendor
dossier, vous pouvez le faire dans leapp/code
dossier. Assurez-vous simplement de spécifier la dépendance logicielle dans lemodule.xml
module, de la même manière que vous l'avez fait dans M1 dans leapp/etc/modules/Namespace_Module.xml
fichier.La seule différence est qu'en m2, ce ne sont pas des dépendances. Ce sont des séquences.
De cette façon, votre module sera chargé après celui du
vendor
dossierla source
app/code
n'est pas un terrain de jeu;)XM
fichier L dans un module fournisseur, devons-nous encore mentionner les dépendances dansmodule.xml
?app/code
dans ce cas, mais vous pouvez toujours ajouter vos propres modules. Et la seule raison pour laquelle vous devez installer m2 via github est de jouer avec et / ou d'y contribuer. Donc, cela fait toujours techniquementapp/code
votre terrain de jeu.app/code/Vendor
est votre terrain de jeu donc pas de risque de casser des trucs de baseapp/code
est définitivement le bon endroit pour les modules de votre projet.Vous ne devez jamais écrire de code à l'intérieur
vendor
(ce répertoire n'est pas ignoré dans votre contrôle de code source), car il est géré par composer uniquement et est dédié au module tiers ou au module que vous souhaitez réutiliser (et que vous avez publié sur packagist ou votre propre référentiel satis ).la source