Question

disons que j'ai créé un module personnalisé qui étendra certaines fonctionnalités en tant que plugins du module principal Magento_Catalog et appelons-le MyModule.MyModule a déjà été enregistré et activé.

J'ai défini mon module et la séquence de magento_catalog dans module.xml J'ai créé les plugins et les ai déclarés dans etc / adminhtml / di.xml

1) Le plugin qui étend la classe principale du module Magento doit-il se trouver dans la même structure de répertoires que le parent qu'il étend ?Par exemple, le plugin pour MyVendor\MyModule\Block\Adminhtml\Product\Edit.php doit être dans

namespace MyVendor\MyModule\Block\Adminhtml\Product\MyEdit.php

2) Je ne suis pas entièrement sûr de ce que je dois faire exactement pour que MyModule soit invoqué lorsque je vais sur la page ?

http://mydomain/admin/catalog/product/edit/id/8

Merci.

Était-ce utile?

La solution

1) Le plugin qui étend la classe principale du module Magento doit-il se trouver dans la même structure de répertoires que le parent qu'il étend ?Par exemple:

Non, les plugins sont des classes autonomes.

2) Je ne suis pas entièrement sûr de ce que je dois faire exactement pour que MyModule soit invoqué lorsque je vais sur la page ?

Cette question n'a pas vraiment de sens.Un plugin est essentiellement un « écouteur » pour les appels sur d’autres méthodes de classe publique dans Magento.Si vous avez un plugin pour class A, vous pouvez configurer des écouteurs avant, après et "autour" pour des méthodes spécifiques sur la classe A.L'écouteur avant vous permettra de modifier les paramètres de l'appel de méthode.l'écouteur after vous permettra de modifier la valeur des résultats, et l'écouteur around vous permettra de faire des choses supplémentaires avant que la méthode ne soit appelée, ou d'annuler complètement l'appel de méthode.Vous voudrez peut-être revoir ma série de gestionnaires d'objets pour toutes les fonctionnalités du système objet de Magento 2.Cela devrait vous aider à décider comment vous souhaitez personnaliser le comportement du système de Magento avec votre plugin.

Autres conseils

vous devez ajouter le di.xml fichier de votre module ceci

<preference for="Magento\Catalog\Block\Adminhtml\Product\Edit" type="MyVendor\MyModule\Block\Adminhtml\Product\MyEdit" />

Cela indiquera à Magento d'utiliser votre classe au lieu de celle principale.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top