Magento 2: Konvensi Penamaan Jenis Virtual

10

Tanggal: 1 Juni 2015 (mengingat sifat Magento 2 yang berubah)

Di Magento 2, Anda dapat mengonfigurasi "tipe virtual" di di.xmlfile 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 virtualTypememiliki dampak pada perilakunya, atau hanya string unik global yang mengidentifikasi jenisnya sehingga Anda dapat menggunakannya nanti.

Alan Storm
sumber
baik untuk pengembang yang belajar Magento2, ini cukup membingungkan ketika mereka memeriksa argumen yang memiliki nama kelas, dan sebaliknya ternyata menjadi tipe virtual, saya kira juga ditunjukkan di sini alanstorm.com/magento_2_object_manager_virtual_types
huzefam

Jawaban:

9

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.

Anton Kril
sumber
1
Ini menjadi 1,5 tahun, apakah konvensi itu tetap tidak ada konvensi? Saya harus menggunakan apa yang saya inginkan untuk tipe virtual, tetapi Anda masih mendorong saya untuk menggunakan pendekatan kedua? Atau apakah Anda memiliki standar baru sekarang?
Marius