Tanggal: 1 Juni 2015 (mengingat sifat Magento 2 yang berubah)
Di Magento 2, Anda dapat mengonfigurasi "tipe virtual" di di.xml
file konfigurasi modul . Jenis-jenis virtual ini memungkinkan Anda untuk mengubah argumen ketergantungan khusus yang disuntikkan.
Dalam kode inti Magento 2, tampaknya ada dua konvensi penamaan untuk tipe virtual. Pada yang pertama, tipe virtual memiliki nama yang muncul identik dengan nama kelas PHP nyata.
#File: app/code/Magento/CatalogRule/etc/di.xml
<virtualType name="Magento\Catalog\Pricing\Price\Pool" ...
dalam yang kedua, string sederhana, backslash-less digunakan
#File: app/code/Magento/CatalogSearch/etc/di.xml
<virtualType name="advancedSearchFilterList" ...
Apakah ada perbedaan praktis dengan dua konvensi penamaan di atas? yaitu apakah nama yang Anda pilih virtualType
memiliki dampak pada perilakunya, atau hanya string unik global yang mengidentifikasi jenisnya sehingga Anda dapat menggunakannya nanti.
php
magento2
dependency-injection
virtualtype
Alan Storm
sumber
sumber
Jawaban:
Nama tipe virtual hanyalah string unik secara global. Tidak ada perbedaan perilaku untuk tipe virtual yang diberi nama berbeda. Kami hanya tidak memiliki konvensi penamaan yang kuat untuk tipe virtual. Saya pribadi lebih suka pendekatan kedua karena jelas bahwa ini adalah tipe virtual, bukan kelas nyata.
sumber