Magento 2: Sanal Tip Adlandırma Sözleşmesi


10

Tarih: 1 Haziran 2015 (Magento 2'nin değişen doğası göz önüne alındığında)

Magento 2'de, bir modülün yapılandırma dosyasında bir "sanal tür"di.xml yapılandırabilirsiniz. Bu sanal türler, belirli bir enjekte bağımlılığın argümanlarını değiştirmenize izin verir.

Çekirdek Magento 2 kodunda, sanal türler için iki adlandırma kuralı olduğu görülmektedir. İlkinde, sanal türün gerçek bir PHP sınıf adıyla aynı görünen bir adı vardır.

#File: app/code/Magento/CatalogRule/etc/di.xml
<virtualType name="Magento\Catalog\Pricing\Price\Pool" ...

ikincisinde, basit, eğik çizgi içermeyen bir dize kullanılır

#File: app/code/Magento/CatalogSearch/etc/di.xml
<virtualType name="advancedSearchFilterList" ...

Yukarıdaki iki adlandırma kuralında pratik bir fark var mı? yani, seçtiğiniz adın virtualTypedavranışı üzerinde herhangi bir etkisi var mı, yoksa türü daha sonra kullanabilmeniz için tanımlayan yalnızca benzersiz bir dize mi?


Magento2 öğrenen geliştiriciler için iyi, bu, bir sınıf adı olan bir argümanı kontrol ettiklerinde oldukça karışıklıktır ve bunun yerine sanal bir tür olduğu ortaya çıktı, sanırım burada iyi işaret etti alanstorm.com/magento_2_object_manager_virtual_types
huzefam

Yanıtlar:


9

Sanal türün adı sadece global olarak benzersiz bir dizedir. Farklı adlandırılmış sanal türler için davranış farkı yoktur. Sanal türler için güçlü bir adlandırma kuralımız yok. Şahsen ikinci yaklaşımı tercih ediyorum, çünkü bunun gerçek bir sınıf değil, sanal tip olduğunu açıkça ortaya koyuyor.


1
Bu 1,5 yıllık bir görev, sözleşmeler hala bir sözleşme yok mu? Sanal türler için istediğim her şeyi kullanmalıyım, ama yine de beni ikinci yaklaşımı kullanmaya teşvik ediyor musun? Yoksa şimdiye kadar yeni bir standardınız var mı?
Marius
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.