Kita dapat memperluas pengontrol dengan dua cara: menggunakan preferensi dan menggunakan plugin. Tapi saya tidak mengerti itu, mana yang bagus dan kelebihan / kekurangan dari preferensi vs plugin.
<preference for="Magento\Checkout\Controller\Index\Index" type="mymodule\Helloworld\Controller\Index\Index" />
<type name="Magento\Catalog\Model\Product">
<plugin name="getname-test-module" type="mymodule\Helloworld\Model\Plugin\Product" sortOrder="10"/>
</type>
module
magento2
event-observer
plugin
Anand Ontigeri
sumber
sumber
Jawaban:
Gunakan plugin jika memungkinkan, kemudian pengamat (lihat pro dan kontra dari masing-masing ), ini akan memungkinkan Anda untuk menghindari konflik dengan ekstensi lain (modul pihak ke-3).
Preferensi harus digunakan hanya jika implementasi seluruh kelas inti / antarmuka harus diganti dengan kebiasaan. Pertimbangkan bahwa hanya satu preferensi yang aktif setiap saat (yang mana, ditentukan oleh urutan yang ditentukan dalam
module.xml
), jadi jika ekstensi lain mendefinisikan preferensi untuk kelas / antarmuka yang sama, akan ada konflik (ekstensi ini tidak dapat bekerja bersama-sama).sumber
sumber
adittional info: hampir semua preferensi yang digunakan dalam magang m2 itu hanya untuk menjaga hubungan antara kelas beton dasar dan antarmuka, seperti:
seperti yang Anda gunakan satu kali saya pikir:
sumber