Magento2 активирует пользовательский модуль, расширяющий основной модуль

magento.stackexchange https://magento.stackexchange.com/questions/103487

Вопрос

допустим, я создал собственный модуль, который расширит некоторые функциональные возможности плагинов из основного модуля Magento_Catalog, и назову его MyModule.MyModule уже зарегистрирован и активирован.

Я определил свой модуль и последовательность для magento_catalog в module.xml, я создал плагины и объявил их в файле и т. Д./Adminhtml/di.xml

1) Должен ли плагин, расширяющий основной класс модуля Magento, находиться в той же структуре каталогов, что и родительский элемент, который он расширяет?Например, плагин для MyVendor\MyModule\Block\Adminhtml\Product\Edit.php должен находиться в

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

2) Я не совсем уверен, что именно мне следует делать, чтобы MyModule вызывался, когда я перехожу на страницу?

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

Спасибо.

Это было полезно?

Решение

1) Плагин, который расширяет класс Core Magento Module, должен быть в том же структуре каталога, что и родитель, который он простирается? Например:

Нет, плагины являются автономными классами.

2) Я не совсем уверен, что именно я должен сделать, это mymodule, призывает, когда я хожу на страницу?

Этот вопрос не совсем имеет смысл. Плагин в основном является «слушателем» для звонков на другие методы публичных классов в Magento. Если у вас есть плагин для class A, вы можете настроить ранее, после того, как и «вокруг» слушателей для определенных методов на классе A. Перспектива перед прослушиванием позволит вам изменить параметры на вызов метода. После последующего прослушивателя позволит вам изменить значение результатов, а вокруг слушателя позволит вам делать дополнительные вещи до того, как метод вызывается, или отмените вызов метода. Возможно, вы захотите просмотреть Мой объект Manager Series для всех функций объектной системы Magento 2. Это должно помочь вам решить, как вы хотите настроить системное поведение Magento с помощью своего плагина.

Другие советы

вам нужно добавить в di.xml файл вашего модуля это

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

Это скажет Magento использовать ваш класс вместо основного.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top