質問

Magento_Catalog Core Moduleからのプラグインとして機能を拡張するカスタムモジュールを作成し、MyModuleに電話をかけることができます。 MyModuleはすでに登録され有効化されています。

Module.xmlのMASENTO_CATALOGのシーケンスを定義しました プラグインを作成し、etc / adminhtml / di.xmlファイル

でそれらを宣言しました

1)コアMagento Moduleクラスを拡張するプラグインは、それが拡張された親と同じディレクトリ構造にある必要がありますか?たとえば、MyVendor \ MyModule \ block \ adminhtml \ adminhtml \ edd edit.phpのプラグインin

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

2)私は私がページに行ったときにMyModuleが呼び出されるべきですか?

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

ありがとうございました。

役に立ちましたか?

解決

1)コアMagento Moduleクラスを拡張するプラグインは、それが拡張された親と同じディレクトリ構造にある必要がありますか?例えば:

いいえ、プラグインはスタンドアロンクラスです。

2)私は私がページに行ったときにMyModuleが呼び出されるべきですか?

この質問は意味がありません。プラグインは基本的にMagentoの他のパブリッククラスメソッドに対するコールの「リスナー」です。 class A用のプラグインがある場合は、クラスA上の特定のメソッドの場合は、前、後、および「周囲」リスナーを設定できます。リスナー前にパラメータをコールに変更できます。アフターリスナーは結果の値を変更することを可能にし、Areom Listenerではメソッドが呼び出される前に追加のものを実行することができます。またはメソッド呼び出しを完全にキャンセルすることができます。 Magento 2のオブジェクトシステムのすべての機能について、マイオブジェクトマネージャシリーズを確認したい場合があります。これにより、マージンのシステム動作をプラグインでカスタマイズする方法を決定するのに役立ちます。

他のヒント

あなたのモジュールのdi.xmlファイルにこの

を追加する必要があります。
<preference for="Magento\Catalog\Block\Adminhtml\Product\Edit" type="MyVendor\MyModule\Block\Adminhtml\Product\MyEdit" />
.

これは、コア1の代わりにクラスを使用するようにMagentoに指示します。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top