Magento 1クラスは、依存噴射システムを使用してMagento 2で書き直します
質問
周りを突っ込む Magento 2のコアコード, 、古いクラスの書き換えシステムが破裂し、新しい依存関係噴射システムに置き換えられたようです。
残念ながら、あります ドキュメントはありません この新しいシステムのために。
Magento 2で、ユーザーがクラスを「書き直す」ことができるモジュール構成サンプルを持っている人はいますか Mage_Catalog_Model_Product
新しいクラスで Packagename_Modulename_Model_Product
, 、新しい依存関係インジェクションシステムを使用していますか?
解決
DI構成はdi.xmlファイルに移動され、形式が変更されました。今、好みは次のように見えます(di.xml):
<config>
<preference for="{Interface_Or_Class_Name}" type="{Preferred_Class_Name}" />
</config>
他のヒント
内側から作業して、私は次のもので作業する書き直しを得ることができました
<global>
<di>
<preferences>
<Mage_Catalog_Model_Product>Packagename_Modulename_Model_Product</Mage_Catalog_Model_Product>
</preferences>
</di>
</global>
ただし、依存関係インジェクションの実装にはさらに多くのシステムコードがあるため、上記がMagento 2の最終リリースバージョンで機能するかどうかは明らかではありません。
あなたは正しいです、クラスの書き直しは完全に排除され、DIに置き換えられました。次のメモはセクションからのものです アプリケーションフレームワークの変更:
Magento 1.x - ノード:/global // {工場名に対応するサブパス +「書き直し」リテラル}
<global>
...
<models>
<core>
<rewrite>
<url>My_Module_Model_Url</url>
</rewrite>
</core>
</models>
...
</global>
Magento 2.x - ノード:/グローバル/DI/エイリアス
<global>
...
<di>
<aliases>
<Mage_Core_Model_Url>My_Module_Model_Url</Mage_Core_Model_Url>
</aliases>
</di>
...
</global>
Magento 2.0で実行されているモジュールでこれを使用してみませんでしたが、モジュールあたりの書き直しにXMLの複雑な階層を使用する代わりに、基本的にクラス名のエイリアスを定義しているようです。
所属していません magento.stackexchange