Mengaduk- aduk kode inti Magento 2 , sepertinya sistem penulisan ulang kelas lama telah dicabut dan diganti dengan sistem injeksi ketergantungan baru.
Sayangnya, tidak ada dokumentasi untuk sistem baru ini.
Apakah ada yang punya sampel konfigurasi modul yang akan memungkinkan pengguna, di Magento 2, "menulis ulang" kelas Mage_Catalog_Model_Product
dengan kelas baru Packagename_Modulename_Model_Product
, menggunakan sistem injeksi ketergantungan baru?
Jawaban:
Konfigurasi Di dipindahkan ke file di.xml, dan formatnya dimodifikasi. Sekarang preferensi terlihat seperti ini (di.xml):
sumber
Bekerja dari dalam ke luar, saya bisa mendapatkan penulisan ulang dengan berikut ini
Namun, ada lebih banyak kode sistem dalam implementasi injeksi dependensi, jadi tidak jelas apakah di atas akan berfungsi dalam versi Magento 2 yang dirilis akhir.
sumber
Anda benar, penulisan ulang kelas sepenuhnya dihilangkan dan diganti dengan DI. Catatan berikut berasal dari bagian tentang perubahan Kerangka Aplikasi :
Magento 1.x - Node: / global // {sub-path yang sesuai dengan nama pabrik + "menulis ulang" literal}
Magento 2.x - Node: / global / di / aliases
Saya belum mencoba memanfaatkan ini dalam modul yang berjalan di Magento 2.0, tetapi tampaknya Anda pada dasarnya mendefinisikan alias untuk nama kelas alih-alih menggunakan hierarki rumit xml untuk penulisan ulang per-modul.
sumber