Datum: 1. Juni 2015 (angesichts der sich ändernden Natur von Magento 2)
In Magento 2 können Sie einen "virtuellen Typ" in der di.xml
Konfigurationsdatei eines Moduls konfigurieren. Mit diesen virtuellen Typen können Sie die Argumente einer bestimmten injizierten Abhängigkeit ändern.
Im Kerncode von Magento 2 scheint es zwei Namenskonventionen für virtuelle Typen zu geben. Im ersten Fall hat ein virtueller Typ einen Namen, der mit einem realen PHP-Klassennamen identisch erscheint.
#File: app/code/Magento/CatalogRule/etc/di.xml
<virtualType name="Magento\Catalog\Pricing\Price\Pool" ...
Im zweiten Fall wird eine einfache, Backslash-freie Zeichenfolge verwendet
#File: app/code/Magento/CatalogSearch/etc/di.xml
<virtualType name="advancedSearchFilterList" ...
Gibt es einen praktischen Unterschied zu den beiden oben genannten Namenskonventionen? Hat der Name, den Sie für a ausgewählt virtualType
haben, einen Einfluss auf sein Verhalten oder handelt es sich nur um eine global eindeutige Zeichenfolge, die den Typ identifiziert, damit Sie ihn später verwenden können.
quelle
Antworten:
Der Name des virtuellen Typs ist nur eine global eindeutige Zeichenfolge. Es gibt keinen Unterschied im Verhalten für unterschiedlich benannte virtuelle Typen. Wir haben einfach keine starke Namenskonvention für virtuelle Typen. Ich persönlich bevorzuge den zweiten Ansatz, weil es offensichtlich ist, dass dies ein virtueller Typ ist, keine reale Klasse.
quelle