Date: 1er juin 2015 (compte tenu de la nature changeante de Magento 2)
Dans Magento 2, vous pouvez configurer un "type virtuel" dans le di.xml
fichier de configuration d' un module . Ces types virtuels vous permettent de modifier les arguments d'une dépendance injectée spécifique.
Dans le code principal de Magento 2, il semble y avoir deux conventions de dénomination pour les types virtuels. Dans le premier, un type virtuel a un nom qui semble identique à un vrai nom de classe PHP.
#File: app/code/Magento/CatalogRule/etc/di.xml
<virtualType name="Magento\Catalog\Pricing\Price\Pool" ...
dans le second, une simple chaîne sans barre oblique inverse est utilisée
#File: app/code/Magento/CatalogSearch/etc/di.xml
<virtualType name="advancedSearchFilterList" ...
Y a-t-il une différence pratique entre les deux conventions de dénomination ci-dessus? c'est-à-dire que le nom que vous avez choisi pour virtualType
a un impact sur son comportement, ou est-ce juste une chaîne unique au monde qui identifie le type afin que vous puissiez l'utiliser plus tard.
la source
Réponses:
Le nom du type virtuel n'est qu'une chaîne unique au monde. Il n'y a aucune différence de comportement pour les types virtuels nommés différemment. Nous n'avons tout simplement pas de convention de dénomination forte pour les types virtuels. Personnellement, je préfère la deuxième approche, car il est évident que c'est un type virtuel, pas une vraie classe.
la source