Data: 1 czerwca 2015 r. (Biorąc pod uwagę zmieniający się charakter Magento 2)
W Magento 2 możesz skonfigurować „typ wirtualny” w di.xml
pliku konfiguracyjnym modułu . Te typy wirtualne umożliwiają zmianę argumentów konkretnej wstrzykiwanej zależności.
W podstawowym kodzie Magento 2 wydają się istnieć dwie konwencje nazewnictwa dla typów wirtualnych. W pierwszym typ wirtualny ma nazwę, która wygląda identycznie jak prawdziwa nazwa klasy PHP.
#File: app/code/Magento/CatalogRule/etc/di.xml
<virtualType name="Magento\Catalog\Pricing\Price\Pool" ...
w drugim stosuje się prosty ciąg bez ukośników
#File: app/code/Magento/CatalogSearch/etc/di.xml
<virtualType name="advancedSearchFilterList" ...
Czy jest jakaś praktyczna różnica w stosunku do powyższych dwóch konwencji nazewnictwa? tzn. czy nazwa, którą wybrałeś, virtualType
ma jakikolwiek wpływ na jej zachowanie, czy jest to po prostu unikatowy globalnie ciąg identyfikujący typ, abyś mógł z niego później korzystać.
źródło
Odpowiedzi:
Nazwa typu wirtualnego jest po prostu unikalnym globalnie ciągiem. Nie ma różnicy w zachowaniu dla typów wirtualnych o różnych nazwach. Po prostu nie mamy silnej konwencji nazewnictwa dla typów wirtualnych. Osobiście wolę drugie podejście, ponieważ pokazuje, że jest to typ wirtualny, a nie prawdziwa klasa.
źródło